@Gaurav Aggarwal
Obviously O(n^2) worst case if we use ordinary quick sort with slight
modification(Best case O(n))...
But quick sort can also be done by taking median as element for partition
instead of taking first or last element which will take O(nlgn) worst case
complexity...
But to do the given problem median of median algorithm is best.. It will
take O(n) in worst case...

1. Divide the n elements of input into n/5 groups
2. Find median of each group by insertion sort(performs well for small
inputs) and pick the median for each each group.
3. Repeat steps (1) and (2) repeatedly to find a single median
4.partition the array using that median. such that  k elements are in lower
partition and n-k elements are in higher side of partition.(use the
partition insuch a way that smallest elements are on higher side of
partition and largest elements are on lower side of partition)

5. If index i==k(ith largest element) then return a[i].. else recurse steps
1 to 5 such that (if i>k then use k to r) (else use p to k)(p is the
starting index and r is ending index)..

I hope It explains the code given by piyush sinha..








Cheers
          ~ Jeeva ~

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to