Loading...

PPT – CS 3343: Analysis of Algorithms PowerPoint presentation | free to view - id: 1c6fd6-M2FjZ

The Adobe Flash plugin is needed to view this content

CS 3343 Analysis of Algorithms

- Lecture 14 Order Statistics

Order statistics

- The ith order statistic in a set of n elements is

the ith smallest element - The minimum is thus the 1st order statistic
- The maximum is the nth order statistic
- The median is the n/2 order statistic
- If n is even, there are 2 medians
- How can we calculate order statistics?
- What is the running time?

Order statistics selection problem

- Select the ith smallest of n elements
- Naive algorithm Sort.
- Worst-case running time Q(n log n)
- using merge sort or heapsort (not quicksort).
- We will show
- A practical randomized algorithm with Q(n)

expected running time - A cool algorithm of theoretical interest only

with Q(n) worst-case running time

Recall Quicksort

- The function Partition gives us the rank of the

pivot - If we are lucky, k i. done!
- If not, at least get a smaller subarray to work

with - k gt i ith smallest is on the left subarray
- k lt i ith smallest is on the right subarray
- Divide and conquer
- If we are lucky, k close to n/2, or desired is

in smaller subarray - If unlucky, desired is in larger subarray

(possible size n-1)

Randomized divide-and-conquer algorithm

RAND-SELECT(A, p, q, i) ? i th smallest of A p .

. q if p q i gt 1 then error! r ?

RAND-PARTITION(A, p, q) k ? r p 1 ? k

rank(Ar) if i k then return A r if i lt k

then return RAND-SELECT( A, p, r 1, i ) else

return RAND-SELECT( A, r 1, q, i k )

Randomized Partition

- Randomly choose an element as pivot
- Every time need to do a partition, throw a die to

decide which element to use as the pivot - Each element has 1/n probability to be selected

Rand-Partition(A, p, q) d random() //

draw a random number between 0 and 1 index

p floor((q-p1) d) // pltindexltq

swap(Ap, Aindex) Partition(A, p, q)

// now use Ap as pivot

Example

Select the i 6th smallest

i 6

7

10

5

8

11

3

2

13

pivot

Complete example select the 6th smallest element.

7

10

5

8

11

3

2

13

i 6

Note here we always used first element as pivot

to do the partition (instead of rand-partition).

Intuition for analysis

(All our analyses today assume that all elements

are distinct.)

Lucky

T(n) T(9n/10) Q(n) Q(n)

CASE 3

Running time of randomized selection

T(max(0, n1)) n if 0 n1 split, T(max(1,

n2)) n if 1 n2 split, M T(max(n1, 0))

n if n1 0 split,

T(n)

- For upper bound, assume ith element always falls

in larger side of partition - The expected running time is an average of all

cases

Expectation

Substitution method

Want to show T(n) O(n). So need to prove T(n)

cn for n gt n0

Assume T(k) ck for all k lt n

if c 4

Therefore, T(n) O(n)

Summary of randomized selection

- Works fast linear expected time.
- Excellent algorithm in practice.
- But, the worst case is very bad Q(n2).

Q. Is there an algorithm that runs in linear time

in the worst case?

Worst-case linear-time selection

Same as RAND-SELECT

Choosing the pivot

Choosing the pivot

- Divide the n elements into groups of 5.

Choosing the pivot

- Divide the n elements into groups of 5. Find the

median of each 5-element group by rote.

Choosing the pivot

x

- Divide the n elements into groups of 5. Find the

median of each 5-element group by rote. - Recursively SELECT the median x of the ë n/5û

group medians to be the pivot.

Analysis

x

At least half the group medians are x, which is

at least ë ë n/5û /2û ë n/10û group medians.

Analysis

x

- At least half the group medians are x, which is

at least ë ë n/5û /2û ë n/10û group medians. - Therefore, at least 3 ë n/10û elements are x.

(Assume all elements are distinct.)

Analysis

x

- At least half the group medians are x, which is

at least ë ë n/5û /2û ë n/10û group medians. - Therefore, at least 3 ë n/10û elements are x.
- Similarly, at least 3 ë n/10û elements are ³ x.

Analysis

Need at most for worst-case runtime

- At least 3 ë n/10û elements are x ? at most

n-3 ë n/10û elements are ? x - At least 3 ë n/10û elements are ? x ? at most

n-3 ë n/10û elements are ? x - The recursive call to SELECT in Step 4 is

executed recursively on at most n-3 ë n/10û

elements.

Analysis

- Use fact that ë a/bû gt a/b-1
- n-3 ë n/10û lt n-3(n/10-1) ? 7n/10 3
- ? 3n/4 if n 60
- The recursive call to SELECT in Step 4 is

executed recursively on at most 7n/103 elements.

Developing the recurrence

T(n)

Q(n)

T(n/5)

Q(n)

T(7n/103)

Solving the recurrence

Assumption T(k) ck for all k lt n

if n 60

if c 20 and n 60

Conclusions

- Since the work at each level of recursion is

basically a constant fraction (19/20) smaller,

the work per level is a geometric series

dominated by the linear work at the root. - In practice, this algorithm runs slowly, because

the constant in front of n is large. - The randomized algorithm is far more practical.

Exercise Try to divide into groups of 3 or

7. Exercise Think about an application in

sorting.