# Anyone can help me to solve this question, I have tryed, but didn't work with me

https://code.sololearn.com/cA10a2237A0A/?ref=app Assume we want to analyze empirically 4 variants of the Quicksort algorithm by varying the selection of the pivot and the recursive call as follows: ● Try the following values when selecting a pivot: - Pick the last element as pivot - Pick a random element as pivot ● Do not make a recursive call to QuickSort when the list size falls below a given threshold, and use Insertion Sort to complete the sorting process instead. Try the following values for the threshold size: - Log2(N) - Sqrt(N) Therefore, you are asked: a. Write the java code for the 4 Quicksort implementations. b. Write a driver program that allows you to measure the running time in milliseconds of the 4 implementations for N = 10000, 20000, 40000, 80000 and 160000. For each data size N, generate a random list of N random integers ranging from 1 to 107 and use the same list to measure the running