Quicksort Lecture 4. Quicksort Divide and Conquer.

Post on 13-Dec-2015

218 views 0 download

Tags:

Transcript of Quicksort Lecture 4. Quicksort Divide and Conquer.

Quicksort

Lecture 4

Quicksort

Divide and Conquer

Partitioning Subroutine

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Example of Partitioning

Running time for PARTITION

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

)(n

Pseudo code for Quicksort

Analysis of Quicksort

Worst-case of quicksort

Worst-case decision tree

Worst-case decision tree

Worst-case decision tree

Worst-case decision tree

Worst-case decision tree

Worst-case decision tree

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

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

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

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

Best-case analysis

Analysis of almost best-case

Analysis of almost best-case

Analysis of almost best-case

Analysis of almost best-case

Analysis of almost best-case

Best-case analysis

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

We guess that

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

nqnTqTnTnq

)log(log)( nnncnnT

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

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

More intuition

Randomized quicksort

Randomized quicksort

Standard Problematic Algorithm :

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)

Randomized quicksort

Randomized quicksort analysis

Calculating Expectation

Calculating Expectation

Calculating Expectation

Calculating Expectation

Calculating Expectation

Calculating Expectation

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

Substitution Method

Substitution Method

Substitution Method

Substitution Method

Quicksort in practice