Run these algorithms for different input sizes (e.g. = 500, 1000, 2000, 4000, 5000, 10000, 20000, 30000, 40000 and 50,000). You will randomly generate numbers for your input array. Record the execution time (need to take the average as discussed in the class) in a table and later plot them all in a single graph against input size. Note that you will compare these sorting algorithms for the same data set.
In addition, observe and present performance of the following two special cases:
Input array is already sorted.Input array is inversely sorted.
Implement the following algorithms:
1. Insertion Sort
2. Merge Sort
3. In-place quicksort (any random item or the first or the last item of your input can be pivot).
Use median-of-three as pivot.
For small subproblem size ( ), you must use insertion sort.