1. Write code for selection sort, insertion sort and bubble sort. Be sure you can read input from a file which has an integer on every line.
2. Using your implementation of selection, bubble and insertion sort, insert a counter in the appropriate place so as to measure the runtime of your
code (e.g., this could be a counter to track the number of compare operations, or move/shift operations in the innermost loop).
3. PLOT the runtime as measured by the counter inserted in (2) for each of the three implementations -- selection, bubble and insertion sort for data-set provided. Discuss your results. [dus-2.txt has 2^2 elements; dus-10.txt has 2^10 elements, so on..].
4. Take the sorted output from 3, and use that as the "sorted input" for your three implementations. Do the runtimes changes? Explain.
Part 2 of the assignment:
Assignment Instructions
Q1. Implement the Quicksort algorithm. Please ensure it is complete --- namely, it has both the select pivot and sorting phases.
Q2. Implement a suitable counter of the number of operations for your implementation of Quicksort. [1 point]. Plot/Analyze the time taken for different input sizes (use the dataset from HW6,)
Q3. Plot/Analyze the time taken for your implementation of Quicksort on the output of Q2. Explain your answer.