Quick Sort
Quick Sort
Quick Sort
Divide: Partition the array into two sub-arrays
CSE@DIU 2
Quick Sort
Conquer: Sort the two sub-arrays A[p . . q-1] and
CSE@DIU 3
Quick Sort
Combine: Since the sub-arrays are sorted in place, no
CSE@DIU 4
Quick Sort
QUICKSORT(A, p, r)
if p< r
then q 🡨 PARTITION(A, p, r)
QUICKSORT(A, p, q-1)
QUICKSORT(A, q+1, r)
CSE@DIU 5
Quick Sort
PARTITION(A, p, r)
x 🡨 A[r]
i 🡨 p-1
CSE@DIU 6
Quick Sort
for j 🡨 p to r-1
do if A[j] <= x
then i 🡨i+1
return i+1
CSE@DIU 7
Quick Sort
i p, j r
2 8 7 1 3 5 6 4
(a)
CSE@DIU 8
Quick Sort
p, i j r
2 8 7 1 3 5 6 4
(b)
CSE@DIU 9
Quick Sort
p, i j r
2 8 7 1 3 5 6 4
(c)
CSE@DIU 10
Quick Sort
p, i j r
2 8 7 1 3 5 6 4
(d)
CSE@DIU 11
Quick Sort
p i j r
2 1 7 8 3 5 6 4
(e)
CSE@DIU 12
Quick Sort
p i j r
2 1 3 8 7 5 6 4
(f)
CSE@DIU 13
Quick Sort
p i j r
2 1 3 8 7 5 6 4
(g)
CSE@DIU 14
Quick Sort
p i r
2 1 3 8 7 5 6 4
(h)
CSE@DIU 15
Quick Sort
p i r
2 1 3 4 7 5 6 8
(i)
CSE@DIU 16
Quick Sort
Worst-case partitioning:
CSE@DIU 17
Quick Sort
Worst-case partitioning:
=T(n-1) + θ(n)
=----------------- θ(n2)
CSE@DIU 18
Quick Sort
Worst-case partitioning:
CSE@DIU 19
Quick Sort
Best-case partitioning:
2.
CSE@DIU 20
Quick Sort
Best-case partitioning:
= ----- O(n lg n)
CSE@DIU 21
Quick Sort
Best-case partitioning:
Balanced partitioning:
Balanced partitioning:
= ------------O(n lg n)
CSE@DIU 24
Quick Sort
CSE@DIU 25
Quick Sort
Balanced partitioning:
CSE@DIU 26
Quick Sort
CSE@DIU 27
Quick Sort
CSE@DIU 28
Quick Sort
Intuition for the average case:
n
Θ(n)
0 n-1
(n-1)/2-1 (n-1)/2
CSE@DIU 29
Quick Sort
Intuition for the average case:
n Θ(n)
(n-1)/2 (n-1)/2
CSE@DIU 30
A Randomized Version of Quick Sort
A[p..r].
CSE@DIU 31
A Randomized Version of Quick Sort
CSE@DIU 32
A Randomized Version of Quick Sort
RANDOMIZED-PARTITION(A, p, r)
i 🡨 RANDOM(p, r)
return PARTITION(A, p, r)
CSE@DIU 33
A Randomized Version of Quick Sort
RANDOMIZED-QUICKSORT(A, p, r)
if p<r then
q 🡨 RANDOMIZED-PARTITION(A, p, r)
RANDOMIZED-QUICKSORT(A, p, q-1)
RANDOMIZED-QUICKSORT(A, q+1, r)
CSE@DIU 34
Textbooks & Web References
• Text Book (Chapter 3)
• www.visualgo.net
CSE@DIU 35
Thank you
CSE@DIU 36