4-quicksort
4-quicksort
Tech
Course Code: AIML303/AIDS303/IOT303
Course Name: Design & Analysis of Algorithms
Quick Sort
By:
Dr. Monika Bansal
Quick Sort
Quicksort
Partition
…5 7 1 2 8 4 3 6…
p r
i
…5 7 1 2 8 4 3 6…
p r
i j
…5 7 1 2 8 4 3 6…
p r
i j
…5 7 1 2 8 4 3 6…
p r
ij
…5 7 1 2 8 4 3 6…
p r
ij
…5 7 1 2 8 4 3 6…
p r
i j
…5 7 1 2 8 4 3 6…
p r
i j
…5 7 1 2 8 4 3 6…
p r
i j
…5 7 1 2 8 4 3 6…
p r
i j
…5 1 7 2 8 4 3 6…
p r
i j
…5 1 7 2 8 4 3 6…
p r
i j
…5 1 7 2 8 4 3 6…
p r
i j
…5 1 2 7 8 4 3 6…
p r
i j
…5 1 2 7 8 4 3 6…
p r
i j
…5 1 2 7 8 4 3 6…
p r
What’s happening?
i j
…5 1 2 7 8 4 3 6…
p r
p r
i j
…5 1 2 4 8 7 3 6…
p r
i j
…5 1 2 4 3 7 8 6…
p r
i j
…5 1 2 4 3 6 8 7…
p r
i j
…5 1 2 4 3 6 8 7…
p r
Partition
Partitions the elements A[p…r-1] in to two sets, those ≤ pivot and
those > pivot
Partition running time?
Θ(n)
Quicksort
8 5 1 3 6 2 7 4
8 5 1 3 6 2 7 4
1 3 2 4 6 8 7 5
1 3 2 4 6 8 7 5
1 3 2 4 6 8 7 5
1 2 3 4 6 8 7 5
1 2 3 4 6 8 7 5
1 2 3 4 6 8 7 5
1 2 3 4 6 8 7 5
1 2 3 4 6 8 7 5
1 2 3 4 5 8 7 6
1 3 2 4 6 8 7 5
Running time of Quicksort?
Worst case?
Each call to Partition splits the array into an empty array and n-1
array
Quicksort: Worse case running time
T (n) = T (n − 1) + (n)
⚫ reverse sorted
Each call to Partition splits the array into two equal parts
T (n) = 2T (n / 2) + (n)
O(n log n) (same as merge sort)
T (100
1
n)T (100
9
n) T (100
9
n)T (100
81
n)
Average-case analysis
cn cn
1
10
cn 9
10
cn cn
log10/9 n
1 9 9 81 cn
100
cn 100
cn 100
cn 100
cn
…
(1) O(n) leaves
(1)
Average-case analysis
cn cn
1
10
cn 9
10
cn cn
log10 log10/9 n
n 1 cn 9
cn 9
cn 81 cn
cn
100 100 100 100
…
(1) O(n) leaves
(n lg n) (1)
cn log10n T(n) cn log10/9n + (n)
Average-case analysis
Randomized quicksort