1 / 6

Recurrence Warmup

Recurrence Warmup. Finding the Median Without Sorting. Generalize to finding the k’th largest element of a list: Find(L , k ) Median ::= Find(L , |L|/2). Find(L , k ). Let |L| = n . Assume distinct elements

mio
Download Presentation

Recurrence Warmup

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Recurrence Warmup

  2. Finding the Median Without Sorting Generalize to finding the k’th largest element of a list: Find(L, k) Median ::= Find(L, |L|/2)

  3. Find(L, k) Let |L| = n. Assume distinct elements Divide L into blocks of 5 and find the medians (third of five elements) of the blocks: O(n) time. Recursively find the median of the medians, M M < half the medians, and each median < 2 of the 5 elements of its block So those medians are < 2/10 of the elements of L So M < 3/10 of the elements of L Likewise M > 3/10 the elements of L

  4. Find(L, k) Use M to split L into two sublists: elements < M and elements > M. On the basis of the size of these lists, figure out which part the k’th element of L belongs to. Recursively find the corresponding element within that sublist, which is of size at most 7n/10.

  5. Analysis T(1) = 1 T(n) ≤ T(n/5) + T(7n/10) (Time to find median of medians plus time to select from elements that have not been excluded) Linear solution! Because n + .9n + .92n + … < 10n So T(n) = O(n)

  6. FINIS

More Related