Discrrete mathematics for computer science recurrence warmup

6 111 0
Discrrete mathematics for computer science recurrence warmup

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 Divide L into blocks of 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 < of the 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 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 Analysis • • • T(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 + n + … < 10n So T(n) = O(n) FINIS

Ngày đăng: 22/03/2019, 11:56

Từ khóa liên quan

Mục lục

  • Slide 1

  • Finding the Median Without Sorting

  • Find(L, k)

  • Find(L, k)

  • Analysis

  • FINIS

Tài liệu cùng người dùng

Tài liệu liên quan