I guess the link<http://valis.cs.uiuc.edu/~sariel/research/CG/applets/linear_prog/median.html>talks about modified quick sort approach. Remember, if your choise of pivot is bad everytime, this will have a worst case performance of O(n). You should refer to Selection Algorithm<http://en.wikipedia.org/wiki/Selection_algorithm>for better worst case performance.
On Wednesday, July 11, 2012 3:12:07 PM UTC+8, Navin Kumar wrote: > @sachin: > > > http://valis.cs.uiuc.edu/~sariel/research/CG/applets/linear_prog/median.html > > On Wed, Jul 11, 2012 at 12:28 PM, sachin goyal > <sachingoyal....@gmail.com>wrote: > >> To Mr. B >> how will you find median in O(n) time? please elaborate. >> >> >> On Wednesday, July 11, 2012 4:01:43 AM UTC+5:30, Mr.B wrote: >>> >>> I found a similar solution looking somewhere else. >>> >>> The solution for this problem is: >>> a. There can be atmost 3 elements (only 3 distinct elements with each >>> repeating n/3 times) -- check for this and done. -- O(n) time. >>> b. There can be atmost 2 elements if not above case. >>> >>> 1. Find the median of the input. O(N) >>> 2. Check if median element is repeated N/3 times or more -- O(n) - *{mark >>> for output if yes}* >>> 3. partition the array based on median found above. - O(n) -- >>> {partition is single step in quicksort} >>> 4. find median in left partition from (3). - O(n) >>> 5. check if median element is repeared n/3 times or more - O(n) *{mark >>> for output if yes}* >>> 6. find median in right partition from (3). - O(n) >>> 7. check if median element is repeared n/3 times or more - O(n) *{mark >>> for output if yes}* >>> >>> its 7*O(N) => O(N) solution. Constant space. >>> >>> we need not check further down or recursively. {why? reason it.. its >>> simple} >>> >>> >>> On Wednesday, 27 June 2012 18:35:12 UTC-4, Navin Kumar wrote: >>>> >>>> >>>> Design an algorithm that, given a list of n elements in an array, finds >>>> all the elements that appear more than n/3 times in the list. The >>>> algorithm >>>> should run in linear time >>>> >>>> ( n >=0 ). >>>> >>>> You are expected to use comparisons and achieve linear time. No >>>> hashing/excessive space/ and don't use standard linear time deterministic >>>> selection algo. >>>> >>>> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/algogeeks/-/PxIJd3So3tkJ. >> >> 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. >> > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To view this discussion on the web visit https://groups.google.com/d/msg/algogeeks/-/lZKI47459WgJ. 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.