Answered step by step
Verified Expert Solution
Question
00
1 Approved Answer
Recall that quicksort selects an element as pivot, partitions an array around the pivot, and recurses on the left and on the right of the
Recall that quicksort selects an element as pivot, partitions an array around the pivot, and recurses on the left and on the right of the pivot. Consider an array that contains many duplicates and observe that for such an array, quicksort recurses on all duplicates of the pivot element. In this task you are to develop a new partitioning procedure that works well on arrays with many duplicates The idea is to partition the array into elements less than the pivot, equal to the pivot and greater than the pivot. (a) (4 points) Develop this idea into a partitioning algorithm and provide pseudocode. Make sure your algorithm is in-place (i.e., do not use more than a constant amount of extra space) (b) (2 points) Use your partitioning algorithm to come up with a sorting algorithm. Analyze the worst-case running time of your algorithm. (c) (2 points) Find an array on which the original quicksort runs in time (n2) but your algorithm from (b) in (n)
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access with AI-Powered Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started