Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
of Algorithms
Quicksort
Analyzing Quicksort
RANDOMIZED-PARTITION(A, p, r)
i ← RANDOM(p, r)
return PARTITION(A, p, r)
Randomized Quicksort
RANDOMIZED-QUICKSORT(A, p, r)
if p < r
then q ← RANDOMIZED-PARTITION(A, p, r)
RANDOMIZED-QUICKSORT(A, p, q)
RANDOMIZED-QUICKSORT(A, q + 1, r)
Analyzing Quicksort: Average Case
1 n 1
T n T k T n 1 k n
n k 0
What is each term under the summation for?
What is the (n) term for?
Analyzing Quicksort: Average Case
So…
1 n 1
T n T k T n 1 k n
n k 0
2 n 1
T k n
n k 0
Analyzing Quicksort: Average Case
2 n 1
T n ak lg k b n The recurrence to be solved
n k 1
2 n 1 2 n 1
ak lg k b n Distribute
What arethewe
summation
doing here?
n k 1 n k 1
2a n 1
k lg k
2b
( n 1) n Evaluate the summation:
What are we doing here?
b+b+…+b = b (n-1)
n k 1 n
2a n 1
k lg k 2b n Since n-1<n,
What 2b(n-1)/n
are we < 2b
doing here?
n k 1
This summation gets its own set of slides later
Analyzing Quicksort: Average Case
2a n 1
T n k lg k 2b n The recurrence to be solved
n k 1
2a 1 2 1 2
n lg n n 2b n What
We’llthe
prove this later
hell?
n 2 8
an lg n n 2b n
a
Distribute
What arethewe(2a/n)
doingterm
here?
4
a Remember, our goal is to get
an lg n b n b n What are we doing here?
4 T(n) an lg n + b
k lg k k lg k k lg k
Split the summation for a
What are we doing here?
tighter bound
k 1 k 1 k n 2
n 2 1 n 1
k lg k k lg n
The lg k in the second term
What are we doing here?
is bounded by lg n
k 1 k n 2
n 2 1 n 1
k lg k lg n k
Move the lg n outside the
What are we doing here?
summation
k 1 k n 2
Tightly Bounding
The Key Summation
n 1 n 2 1 n 1
k lg k
k 1
k lg k lg n
k 1
k
k n 2
The summation bound so far
n 2 1 n 1
k lg n 2 lg n k
The lg k in the first term is
What are we doing here?
bounded by lg n/2
k 1 k n 2
n 2 1 n 1
k lg n 1 lg n
k 1
k
k n 2
lg n/2
What= lg n we
are - 1 doing here?
n 2 1 n 1
lg n 1 k lg n k
Move (lg n - 1) outside the
What are we doing here?
summation
k 1 k n 2
Tightly Bounding
The Key Summation
n 1 n 2 1 n 1
k lg k lg n 1
k 1
k lg n
k 1
k
k n 2
The summation bound so far
n 2 1 n 2 1 n 1
lg n k
k 1
k lg n
k 1
k
k n 2
Distribute
What are wethe (lg nhere?
doing - 1)
n 1 n 2 1
lg n k k
The summations overlap in
What are we doing here?
range; combine them
k 1 k 1
n 1(n) n 2 1
lg n
2
k
k 1
TheWhat
Guassian
are weseries
doing here?
Tightly Bounding
The Key Summation
n 1
n 1(n) n 2 1
k 1
k lg k
2
lg n k
k 1
The summation bound so far
n 2 1
nn 1lg n k
1 Rearrange first term, place
What are we doing here?
upper bound on second
2 k 1
1 n n
nn 1lg n 1
1
X Guassian
What are series
we doing?
2 2 2 2
1 2
2
8
1 2 n
n lg n n lg n n
4
Multiply it
What are we doing?
all out
Tightly Bounding
The Key Summation
n 1
1 2 1 2 n
k 1
k lg k n lg n n lg n n
2 8 4
1 2 1 2
n lg n n when n 2
2 8
Done!!!