# quicksort worst case recurrence relation

Q11. Q10. The number of key comparisons in the best case satisfies the recurrence . While we can say a particular input is the best case or the worst case for some quicksort algorithm, we cannot just point to one particular input and say that input is the average case (even an average case) for some quicksort algorithm even though people do that sloppily all the time. Method split makes n − 1 comparisons when process-ing an array of size n. QuickSort is then called recursively on the subarrays A[0..pivotLoc−1] and A[pivotLoc+1..n−1]. Worst case is still O(n²). Median of k pivot selection} "Switch over" to a simpler sorting method (insertion) when the subarraysize gets small (You’ll want this.) A number of variants of such algorithm were developed, in trying better average times. The challenge in analyzing Quick- Let's analyze the above code and confirm these running times. What is the worst-case running time of Quicksort? Show the recurrence relation for the worst-case and solve it. }Avoid the worst case Select pivot from the middle Randomly select pivot Median of 3 pivot selection. Write an algorithm for an iterative (i.e., nonrecursive) version of Quicksort. Now, the total running time of the QUICKSORT function is going to be the summation of the time taken by the PARTITION(A, start, end) and two recursive calls to itself. M3 reduces the chances of "worst" cases, thus allowing better execution times, at a cost of the time spent to divide in more subsets. So you should make an analysis for the worst case - best case - average case. First of all you should consider Quicksort is not deterministic. Q12. We have already stated that Quicksort takes $\Theta(n^2)$ time in the worst case and $\Theta(nlg{n})$ in the best case. In the worst case as an example: T(n) = T(n-1) + O(n) The O(n) comes from the fact that you are partitioning the whole array. You only need to provide the pseudo-code. Worst Case Analysis of QuickSort Recall that QuickSort works by calling a method called split which divides the array in two. Quicksort is the other important sorting algorithm that is based on the divide-and-conquer approach. Median-of-three (M3 for short) has average time of 12/7 n log n + O(n). (C) Recurrence is T(n) = 2T(n/2) + O(n) and time complexity is O(nLogn) (D) Recurrence is T(n) = T(n/10) + T(9n/10) + O(n) and time complexity is O(nLogn) Answer: (B) Explanation: The worst case of QuickSort occurs when the picked pivot is always one of the corner elements in sorted array. Worst case is O(n²). The T(n-1) instead is the number of elements left to partition in the worst case. Give a concrete example of an array A[1..n) with n 25 that has that worst-case running time. The key to understanding why this might be true is to understand how the balance of the partitioning is reflected in the recurrence that describes the running time. The average-case running time of quicksort is much closer to the best case than to the worst case, as the analyses in Section 8.4 will show.