quicksort lecture 4. quicksort divide and conquer

57
Quicksort Lecture 4

Upload: adelia-harrell

Post on 13-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quicksort Lecture 4. Quicksort Divide and Conquer

Quicksort

Lecture 4

Page 2: Quicksort Lecture 4. Quicksort Divide and Conquer

Quicksort

Page 3: Quicksort Lecture 4. Quicksort Divide and Conquer

Divide and Conquer

Page 4: Quicksort Lecture 4. Quicksort Divide and Conquer

Partitioning Subroutine

Page 5: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 6: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 7: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 8: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 9: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 10: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 11: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 12: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 13: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 14: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 15: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 16: Quicksort Lecture 4. Quicksort Divide and Conquer

Example of Partitioning

Page 17: Quicksort Lecture 4. Quicksort Divide and Conquer

Running time for PARTITION

The running time of PARTITION on the subarray A[p...r] is where n=r-p+1

)(n

Page 18: Quicksort Lecture 4. Quicksort Divide and Conquer

Pseudo code for Quicksort

Page 19: Quicksort Lecture 4. Quicksort Divide and Conquer

Analysis of Quicksort

Page 20: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case of quicksort

Page 21: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case decision tree

Page 22: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case decision tree

Page 23: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case decision tree

Page 24: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case decision tree

Page 25: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case decision tree

Page 26: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case decision tree

Page 27: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case analysis

For the worst case, we can write the recurrence equation as

We guess that

)()}1()({max)(10

nqnTqTnTnq

2)( cnnT

)(})1({max

)(})1({max)(

22

10

22

10

nqnqc

nqnccqnT

nq

nq

Page 28: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case analysis

This expression achieves a maximum at either end points:

q=0 or q=n-1.

Using the maximum of T(n) we have

Thus

2

2 )()12()(

cn

nnccnnT

).()( 2nOnT

)(})1({max)( 22

10nqnccqnT

nq

Page 29: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case analysis

We can also show that the recurrence equation as

Has a solution of

We guess that

)()}1()({max)(10

nqnTqTnTnq

)()( 2nnT

)(})1({max

)(})1({max)(

22

10

22

10

nqnqc

nqnccqnT

nq

nq

2)( cnnT

Page 30: Quicksort Lecture 4. Quicksort Divide and Conquer

Worst-case analysis

Using the maximum of T(n) we have

We can pick the constant c1 large enough so thatand

Thus the worst case running time of quicksort is

)()( 22 ncnnT

ncccn

cncccn

ncnccn

nnccnnT

)2(

)2(

)12(

)()12()(

12

12

12

2

021 cc

)( 2n

Page 31: Quicksort Lecture 4. Quicksort Divide and Conquer

Best-case analysis

Page 32: Quicksort Lecture 4. Quicksort Divide and Conquer

Analysis of almost best-case

Page 33: Quicksort Lecture 4. Quicksort Divide and Conquer

Analysis of almost best-case

Page 34: Quicksort Lecture 4. Quicksort Divide and Conquer

Analysis of almost best-case

Page 35: Quicksort Lecture 4. Quicksort Divide and Conquer

Analysis of almost best-case

Page 36: Quicksort Lecture 4. Quicksort Divide and Conquer

Analysis of almost best-case

Page 37: Quicksort Lecture 4. Quicksort Divide and Conquer

Best-case analysis

For the best case, we can write the recurrence equation as

We guess that

)()}1()({min)(10

nqnTqTnTnq

)log(log)( nnncnnT

Page 38: Quicksort Lecture 4. Quicksort Divide and Conquer

Best-case analysis

2

1

0})1(

)1()1log(log{/

)1log()1(logLet

)()}1log()1(log{min

)()}1log()1(log{min)(

10

10

nq

qn

qnqnq

q

qcdqdQ

qnqnqqQ

nqnqnqqc

nqnqncqcqnT

nq

nq

Page 39: Quicksort Lecture 4. Quicksort Divide and Conquer

Best-case analysis

This expression achieves a minimum at

Using the minimum of T(n) we have

)log(

log

)()1log(

)()1()1log(

)(}2

1log

2

1

2

1log

2

1{)(

nn

ncn

nncn

nncncn

nnnnn

cnT

2

1

nq

Page 40: Quicksort Lecture 4. Quicksort Divide and Conquer

More intuition

Page 41: Quicksort Lecture 4. Quicksort Divide and Conquer

Randomized quicksort

Page 42: Quicksort Lecture 4. Quicksort Divide and Conquer

Randomized quicksort

Standard Problematic Algorithm :

Page 43: Quicksort Lecture 4. Quicksort Divide and Conquer

Randomized quicksort

RANDOMIZED-PARTITION (A, p, r)1i←RANDOM(p, r)2exchange A[r]↔A[i]3return PARTITION(A, p, r)

RANDOMIZED-QUICKSORT (A,p,r)1if p<r

2then q←RANDOMIZED-PARTITION (A, p, r) RANDOMIZED-QUICKSORT (A, p, q-1)

RANDOMIZED-QUICKSORT (A, q+1, r)

Page 44: Quicksort Lecture 4. Quicksort Divide and Conquer

Randomized quicksort

Page 45: Quicksort Lecture 4. Quicksort Divide and Conquer

Randomized quicksort analysis

Page 46: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

Page 47: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

Page 48: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

Page 49: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

Page 50: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

Page 51: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

Page 52: Quicksort Lecture 4. Quicksort Divide and Conquer

Calculating Expectation

bound. theis this2nFor 8

1lg

2

12

)12

(2

1lg)1(

2

1

lg

lg)1(lg

lgby above bounded issummation second in the lg The

1lg)2(lgby above bounded issummation first in the lg The

lglglg

22

12/

1

1

1

1

2/

12/

1

1

2/

12/

1

1

1

nnn

nnnnn

kkn

knkn

nk

nn/k

kkkkkk

n

k

n

k

n

nk

n

k

n

nk

n

k

n

k

Page 53: Quicksort Lecture 4. Quicksort Divide and Conquer

Substitution Method

Page 54: Quicksort Lecture 4. Quicksort Divide and Conquer

Substitution Method

Page 55: Quicksort Lecture 4. Quicksort Divide and Conquer

Substitution Method

Page 56: Quicksort Lecture 4. Quicksort Divide and Conquer

Substitution Method

Page 57: Quicksort Lecture 4. Quicksort Divide and Conquer

Quicksort in practice