The purpose of this assignment is to test the different algorithms seen in class (gcd1, gcd2, Euclid, binaryGcd) in order to obtain the gcd of 2 numbers. Implement these algorithms together with non recursive Euclid algorithm, and test it over one million random numbers (each numbers bigger than 100,000) while recording the running time for each. Be careful to use binary shifting for binaryGcd. Make a summary table containing the time for each algorithm, and explain if your practical experimentations corroborate the theoretical findings we saw during the class.
Write a program to implement Prim’s and Kruskal’s algorithm using a matrix representation of undirected graphs. For Kruskal, use different methods for Union-Find. Create a random generator for your graphs, and test the efficiency of each algorithm on big graphs. Which algorithm is the quickest?