{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Quiz1(1) - Algorithm QuickSelect(array A k If k&gt...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
Algorithms CSE 5211 Fall 2008 Quiz 1 Points: Time: 30 min Q1. QuickPartition is that part of the QuickSort algorithm, which takes a list and a pivot as input and partitions the list into two parts such that each element left of the pivot is less than or equal to it, and each element on its right is greater than or equal to the pivot. Step through the QuickPartition algorithm for the following input: 1 2 9 4 5 6 3 7 8, and the last element (8) as the pivot . Q2. Set up a recurrence equation and solve it for the recursive algorithm below. [Hint: T(N) = how many recursive calls, of what size, + what is the “overhead,” i.e., complexity of the parts other than the recursive calls?]
Background image of page 1
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Algorithm QuickSelect (array A , k ) If k > length(A) then return no answer; if single element in array then return it as the answer; // k must be = = 1 in the above case pick a pivot from the array and QuickPartition the array; // as is done in QuickSort ) say, the left half of A is L including the pivot, and say, the right half is R ; if length (L) k then QuickSelect (L, k) else QuickSelect (R, k - size(L) -1); // previous calls k-th element is k-|L|-1 in R End algorithm. Q3. Prove the correctness of the MergeSort Algorithm presuming the input size is a power of 2....
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online