quicksort, randomized algorithms - ernetsourav/lecture-04.pdf · l4.2 quicksort •proposed by...
TRANSCRIPT
![Page 1: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/1.jpg)
Quicksort, Randomized Algorithms
Lecture 4
![Page 2: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/2.jpg)
L4.2
Quicksort
• Proposed by C.A.R. Hoare in 1962.
• Divide-and-conquer algorithm.
• Sorts “in place” (like insertion sort, but notlike merge sort).
• Very practical (with tuning).
![Page 3: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/3.jpg)
L4.3
Divide and conquer
Quicksort an n-element array:
1. Divide: Partition the array into two subarraysaround a pivot x such that elements in lowersubarray x elements in upper subarray.
2. Conquer: Recursively sort the two subarrays.
3. Combine: Trivial.
x x x
Key: Linear-time partitioning subroutine.
![Page 4: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/4.jpg)
L4.4
x
Running time = O(n) for n elements.
Partitioning subroutine
PARTITION(A, p, q) ⊳ A[ p . . q] x A[ p] ⊳ pivot = A[ p] i p for j p + 1 to q
do if A[ j] x then i i + 1
exchange A[i] A[ j] exchange A[ p] A[i] return i
x x ?
p i q j
Invariant:
![Page 5: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/5.jpg)
L4.5
Example of partitioning
i j
6 10 13 5 8 3 2 11
![Page 6: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/6.jpg)
L4.6
Example of partitioning
i j
6 10 13 5 8 3 2 11
![Page 7: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/7.jpg)
L4.7
Example of partitioning
i j
6 10 13 5 8 3 2 11
![Page 8: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/8.jpg)
L4.8
Example of partitioning
6 10 13 5 8 3 2 11
i j
6 5 13 10 8 3 2 11
![Page 9: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/9.jpg)
L4.9
Example of partitioning
6 10 13 5 8 3 2 11
i j
6 5 13 10 8 3 2 11
![Page 10: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/10.jpg)
L4.10
Example of partitioning
6 10 13 5 8 3 2 11
i j
6 5 13 10 8 3 2 11
![Page 11: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/11.jpg)
L4.11
Example of partitioning
6 10 13 5 8 3 2 11
i j
6 5 3 10 8 13 2 11
6 5 13 10 8 3 2 11
![Page 12: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/12.jpg)
L4.12
Example of partitioning
6 10 13 5 8 3 2 11
i j
6 5 3 10 8 13 2 11
6 5 13 10 8 3 2 11
![Page 13: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/13.jpg)
L4.13
Example of partitioning
6 10 13 5 8 3 2 11
6 5 3 10 8 13 2 11
6 5 13 10 8 3 2 11
i j
6 5 3 2 8 13 10 11
![Page 14: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/14.jpg)
L4.14
Example of partitioning
6 10 13 5 8 3 2 11
6 5 3 10 8 13 2 11
6 5 13 10 8 3 2 11
i j
6 5 3 2 8 13 10 11
![Page 15: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/15.jpg)
L4.15
Example of partitioning
6 10 13 5 8 3 2 11
6 5 3 10 8 13 2 11
6 5 13 10 8 3 2 11
i j
6 5 3 2 8 13 10 11
![Page 16: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/16.jpg)
L4.16
Example of partitioning
6 10 13 5 8 3 2 11
6 5 3 10 8 13 2 11
6 5 13 10 8 3 2 11
6 5 3 2 8 13 10 11
i
2 5 3 6 8 13 10 11
![Page 17: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/17.jpg)
L4.17
Pseudocode for quicksort
QUICKSORT(A, p, r)
if p < r
then q PARTITION(A, p, r)
QUICKSORT(A, p, q)
QUICKSORT(A, q+1, r)
Initial call: QUICKSORT(A, 1, n)
![Page 18: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/18.jpg)
L4.18
Analysis of quicksort
• Assume all input elements are distinct.
• In practice, there are better partitioningalgorithms for when duplicate inputelements may exist.
• Let T(n) = worst-case running time onan array of n elements.
![Page 19: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/19.jpg)
L4.19
Worst-case of quicksort
• Input sorted or reverse sorted.
• Partition around min or max element.
• One side of partition always has no elements.
)(
)()1(
)()1()1(
)()1()0()(
2n
nnT
nnT
nnTTnT
(arithmetic series)
![Page 20: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/20.jpg)
L4.20
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
![Page 21: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/21.jpg)
L4.21
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
T(n)
![Page 22: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/22.jpg)
L4.22
cn
T(0) T(n–1)
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
![Page 23: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/23.jpg)
L4.23
cn
T(0) c(n–1)
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
T(0) T(n–2)
![Page 24: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/24.jpg)
L4.24
cn
T(0) c(n–1)
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
T(0) c(n–2)
T(0)
(1)
![Page 25: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/25.jpg)
L4.25
cn
T(0) c(n–1)
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
T(0) c(n–2)
T(0)
(1)
2
1
nkn
k
![Page 26: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/26.jpg)
L4.26
cn
(1) c(n–1)
Worst-case recursion tree
T(n) = T(0) + T(n–1) + cn
(1) c(n–2)
(1)
(1)
2
1
nkn
k
T(n) = (n) + (n2)
= (n2)
h = n
![Page 27: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/27.jpg)
L4.27
Best-case analysis (For intuition only!)
If we’re lucky, PARTITION splits the array evenly:
T(n) = 2T(n/2) + (n)
= (n lg n) (same as merge sort)
What if the split is always 10
9
10
1 : ?
)()(10
9
101 nnTnTnT
What is the solution to this recurrence?
![Page 28: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/28.jpg)
L4.28
Analysis of “almost-best” case
)(nT
![Page 29: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/29.jpg)
L4.29
Analysis of “almost-best” case
cn
nT101 nT
10
9
![Page 30: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/30.jpg)
L4.30
Analysis of “almost-best” case
cn
cn101 cn
10
9
nT100
1 nT100
9 nT100
9 nT100
81
![Page 31: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/31.jpg)
L4.31
Analysis of “almost-best” case
cn
cn101 cn
10
9
cn100
1 cn100
9 cn100
9 cn100
81
(1)
(1)
log10/9n
cn
cn
cn
…O(n) leaves
![Page 32: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/32.jpg)
L4.32
log10
n
Analysis of “almost-best” case
cn
cn101 cn
10
9
cn100
1 cn100
9 cn100
9 cn100
81
(1)
(1)
log10/9n
cn
cn
cn
T(n) cn log10/9n + O(n)
…
cn log10n
O(n) leaves
(n lg n)
Lucky!
![Page 33: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/33.jpg)
L4.33
More intuition
Suppose we alternate lucky, unlucky, lucky, unlucky, lucky, ….
L(n) = 2U(n/2) + (n) lucky
U(n) = L(n – 1) + (n) unlucky
Solving:
L(n) = 2(L(n/2 – 1) + (n/2)) + (n)
= 2L(n/2 – 1) + (n)
= (n lg n)
How can we make sure we are usually lucky?
Lucky!
![Page 34: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/34.jpg)
L4.34
Randomized quicksort
IDEA: Partition around a random element.
• Running time is independent of the inputorder.
• No assumptions need to be made aboutthe input distribution.
• No specific input elicits the worst-casebehavior.
• The worst case is determined only by theoutput of a random-number generator.
![Page 35: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/35.jpg)
L4.35
Randomized quicksort
analysis
Let T(n) = the random variable for the running time of randomized quicksort on an input of size n, assuming random numbers are independent.
For k = 0, 1, …, n–1, define the indicator random variable
Xk = 1 if PARTITION generates a k : n–k–1 split,
0 otherwise.
E[Xk] = Pr{Xk = 1} = 1/n, since all splits are equally likely, assuming elements are distinct.
![Page 36: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/36.jpg)
L4.36
Analysis (continued)
T(n) =
T(0) + T(n–1) + (n) if 0 : n–1 split,
T(1) + T(n–2) + (n) if 1 : n–2 split, M
T(n–1) + T(0) + (n) if n–1 : 0 split,
1
0
)()1()(n
k
k nknTkTX .
![Page 37: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/37.jpg)
L4.37
Calculating expectation
1
0
)()1()()]([n
kk nknTkTXEnTE
Take expectations of both sides.
![Page 38: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/38.jpg)
L4.38
Calculating expectation
1
0
1
0
)()1()(
)()1()()]([
n
kk
n
kk
nknTkTXE
nknTkTXEnTE
Linearity of expectation.
![Page 39: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/39.jpg)
L4.39
Calculating expectation
1
0
1
0
1
0
)()1()(
)()1()(
)()1()()]([
n
kk
n
kk
n
kk
nknTkTEXE
nknTkTXE
nknTkTXEnTE
Independence of Xk from other random choices.
![Page 40: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/40.jpg)
L4.40
Calculating expectation
1
0
1
0
1
0
1
0
1
0
1
0
)(1)1(1)(1
)()1()(
)()1()(
)()1()()]([
n
k
n
k
n
k
n
kk
n
kk
n
kk
nn
knTEn
kTEn
nknTkTEXE
nknTkTXE
nknTkTXEnTE
Linearity of expectation; E[Xk] = 1/n .
![Page 41: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/41.jpg)
L4.41
Calculating expectation
)()(2
)(1)1(1)(1
)()1()(
)()1()(
)()1()()]([
1
1
1
0
1
0
1
0
1
0
1
0
1
0
nkTEn
nn
knTEn
kTEn
nknTkTEXE
nknTkTXE
nknTkTXEnTE
n
k
n
k
n
k
n
k
n
kk
n
kk
n
kk
Summations have identical terms.
![Page 42: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/42.jpg)
L4.42
Hairy recurrence
)()(2)]([1
2
nkTEn
nTEn
k
(The k = 0, 1 terms can be absorbed in the (n).)
Prove: E[T(n)] a n lg n for constant a > 0 .
Use fact: 21
2812
21 lglg nnnkk
n
k
(exercise).
• Choose a large enough so that a n lg ndominates E[T(n)] for sufficiently small n 2.
![Page 43: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/43.jpg)
L4.43
Substitution method
)(lg2)(1
2
nkakn
nTEn
k
Substitute inductive hypothesis.
![Page 44: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/44.jpg)
L4.44
Substitution method
)(81lg
212
)(lg2)(
22
1
2
nnnnn
a
nkakn
nTEn
k
Use fact.
![Page 45: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/45.jpg)
L4.45
Substitution method
)(4
lg
)(81lg
212
)(lg2)(
22
1
2
nannan
nnnnn
a
nkakn
nTEn
k
Express as desired – residual.
![Page 46: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/46.jpg)
L4.46
Substitution method
nan
nannan
nnnnn
a
nkakn
nTEn
k
lg
)(4
lg
)(81lg
212
)(lg2)(
22
1
2
if a is chosen large enough so that an/4 dominates the (n).
,
![Page 47: Quicksort, Randomized Algorithms - ERNETsourav/Lecture-04.pdf · L4.2 Quicksort •Proposed by C.A.R. Hoare in 1962. •Divide-and-conquer algorithm. •Sorts “in place” (like](https://reader031.vdocument.in/reader031/viewer/2022021801/5b2525be7f8b9ae57a8b4c1a/html5/thumbnails/47.jpg)
L4.47
Quicksort in practice
• Quicksort is a great general-purposesorting algorithm.
• Quicksort is typically over twice as fastas merge sort.
• Quicksort can benefit substantially fromcode tuning.
• Quicksort behaves well even withcaching and virtual memory.