Quicksort Lecture 4. Quicksort Divide and Conquer.

57
Quicksort Lecture 4

Transcript of Quicksort Lecture 4. Quicksort Divide and Conquer.

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