The answer depends on strategy for choosing pivot. In early versions of Quick Sort where leftmost (or rightmost) element is chosen as pivot, the worst occurs in following cases.
1) Array is already sorted in same order.
2) Array is already sorted in reverse order.
3) All elements are same (special case of case 1 and 2)
Since these cases are very common use cases, the problem was easily solved by choosing either a random index for the pivot, choosing the middle index of the partition or (especially for longer partitions) choosing the median of the first, middle and last element of the partition for the pivot. With these modifications, the worst case of Quick sort has less chances to occur, but worst case can still occur if the input array is such that the maximum (or minimum) element is always chosen as pivot.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Can QuickSort be implemented in O(nLogn) worst case time complexity?
- QuickSort Tail Call Optimization (Reducing worst case space to Log n )
- Find a permutation that causes worst case of Merge Sort
- Stable QuickSort
- Why quicksort is better than mergesort ?
- C++ Program for QuickSort
- Python Program for QuickSort
- Java Program for QuickSort
- QuickSort using Random Pivoting
- Dual pivot Quicksort
- 3-Way QuickSort (Dutch National Flag)
- Generic Implementation of QuickSort Algorithm in C
- QuickSort on Doubly Linked List
- QuickSort on Singly Linked List
- Hoare's vs Lomuto partition scheme in QuickSort
- Comparisons involved in Modified Quicksort Using Merge Sort Tree
- Case-specific Sorting of Strings
- Print a case where the given sorting algorithm fails
- How to make Mergesort to perform O(n) comparisons in best case?