Linear-time Median - PowerPoint PPT Presentation

About This Presentation
Title:

Linear-time Median

Description:

Title: Slide 1 Author. Last modified by: ib Created Date: 9/5/2006 1:57:48 AM Document presentation format: On-screen Show Company. Other titles – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 12
Provided by: 2498
Learn more at: https://www.cs.rit.edu
Category:
Tags: linear | median | time

less

Transcript and Presenter's Notes

Title: Linear-time Median


1
Linear-time Median
Def Median of elements Aa1, a2, , an is the
(n/2)-th smallest element in A.
  • How to find median?
  • sort the elements, output the elem. at (n/2)-th
    position
  • - running time ?

2
Linear-time Median
Def Median of elements Aa1, a2, , an is the
(n/2)-th smallest element in A.
  • How to find median?
  • sort the elements, output the elem. at (n/2)-th
    position
  • - running time ?(n log n)
  • we will see a faster algorithm
  • - will solve a more general problem
  • SELECT ( A, k ) returns the k-th
    smallest element in A

3
Linear-time Median
Idea Suppose A 22,5,10,11,23,15,9,8,2,0,4,20,25
,1,29,24,3,12,28,14,27,19,17,21,18,6,7,13,16,26
4
Linear-time Median
  • SELECT (A, k)
  • split A into n/5 groups of five elements
  • let bi be the median of the i-th group
  • let B b1, b2, , bn/5
  • medianB SELECT (B, B.length/2)
  • rearrange A so that all elements smaller than
  • medianB come before medianB, all elements
  • larger than medianB come after medianB, and
  • elements equal to medianB are next to medianB
  • 6. j1,j2 the first and the last position of
  • medianB in rearranged A
  • 7. if (k lt j1) return SELECT ( A1j1-1, k )
  • 8. if (k j and k j2) return medianB
  • 9. if (k gt j2) return SELECT ( Aj21n, k-j2 )

5
Linear-time Median
Running the algorithm
6
Linear-time Median
Running the algorithm
Rearrange columns so that medianB in the
middle. Recurrence
7
Linear-time Median
Recurrence
T(n) lt T(n/5) T(3n/4) cn T(n) lt c
if n gt 5 if n lt 6
Claim There exists a constant d such that
T(n) lt dn.
8
Randomized Linear-time Median
Idea
Instead
of finding medianB, take a random element from A.
  • SELECT-RAND (A, k)
  • x ai where i a random number from 1,,n
  • rearrange A so that all elements smaller than
  • x come before x, all elements larger than x
  • come after x, and elements equal to x are
  • next to x
  • 3. j position of x in rearranged A (if more
  • xs, then take the closest position to n/2)
  • 4. if (k lt j) return SELECT-RAND ( A1j-1, k )
  • 5. if (k j) return medianB
  • 6. if (k gt j) return SELECT-RAND ( Aj1n, k-j)

9
Randomized Linear-time Median
Worst case running time O(n2).
  • SELECT-RAND (A, k)
  • x ai where i a random number from 1,,n
  • rearrange A so that all elements smaller than
  • x come before x, all elements larger than x
  • come after x, and elements equal to x are
  • next to x
  • 3. j1,j2 the leftmost and the rightmost
  • position of x in rearranged A
  • 4. if (kltj1) return SELECT-RAND(A1(j1-1),k)
  • 5. if (j1kj2) return x
  • 6. if (kgtj2) return SELECT-RAND(A(j21)n,k-j)

10
Randomized Linear-time Median
Worst case running time O(n2). Claim Expected
running time is O(n).
11
Master Theorem
  • Let a 1 and bgt1 be constants, f(n) be a
    function and for positive integers we have a
    recurrence for T of the form
  • T(n) a T(n/b)
    f(n),
  • where n/b is rounded either way.
  • Then,
  • If f(n) O(nlog a/log b - e) for some constant
    e gt 0, then

  • T(n) ?(nlog a/log b).
  • If f(n) ?(nlog a/log b), then
    T(n) ?(nlog a/log blog n).
  • If f(n) ?(nlog a/log b e) for some constant
    e gt 0, and if af(n/b) cf(n) for some
    constant c lt 1 (and all sufficiently large n),
    then

  • T(n) ?(f(n)).
Write a Comment
User Comments (0)
About PowerShow.com