Professional Documents
Culture Documents
Chapter 7-8 PDF
Chapter 7-8 PDF
1
Material for the presentation taken from Cormen, Leiserson, Rivest and
Stein, Introduction to Algorithms, Third Edition; 1
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 7 : Quicksort
2
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 7 : Quicksort
2
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 7 : Quicksort
2
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 7 : Quicksort
2
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 7 : Quicksort
2
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
3
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort : Partition
4
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort : Partition
I A = [ 4, 2, 5, 1, 3 ] , p = 1 , r = 5
4
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort : Partition
5
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort : Partition
6
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
PARTITION procedure: four regions
7
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
PARTITION procedure: four regions
7
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
PARTITION procedure: four regions
7
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
[ 2, 5, 1, 4, 3 ]
8
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
[ 2, 5, 1, 4, 3 ]
[ 2, 1, 3, 4, 5 ]
8
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
[ 2, 5, 1, 4, 3 ]
[ 2, 1, 3, 4, 5 ]
[ 2, 1 ] [ 3 ] [ 4, 5 ]
8
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
[ 2, 5, 1, 4, 3 ]
[ 2, 1, 3, 4, 5 ]
[ 2, 1 ] [ 3 ] [ 4, 5 ]
[ 1, 2 ] [ 3 ] [ 4, 5 ]
8
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
[ 2, 5, 1, 4, 3 ]
[ 2, 1, 3, 4, 5 ]
[ 2, 1 ] [ 3 ] [ 4, 5 ]
[ 1, 2 ] [ 3 ] [ 4, 5 ]
[ 1 ] [ 2 ] [ 3 ] [ 4, 5 ]
8
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort
[ 2, 5, 1, 4, 3 ]
[ 2, 1, 3, 4, 5 ]
[ 2, 1 ] [ 3 ] [ 4, 5 ]
[ 1, 2 ] [ 3 ] [ 4, 5 ]
[ 1 ] [ 2 ] [ 3 ] [ 4, 5 ]
[1] [2] [3] [4] [5]
8
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
I Best-case partitioning
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
I Best-case partitioning
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
I Best-case partitioning
9
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Performance of quicksort
I Best-case partitioning
10
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Average-case performance
10
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Average-case performance
10
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
9-to-1 proportional split
11
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Average-case performance
12
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Average-case performance
12
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Average-case performance
12
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Average-case performance
12
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Randomized version of quicksort
13
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Randomized version of quicksort
13
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Randomized Quicksort
14
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Randomized Quicksort
14
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
15
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
15
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
15
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
16
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
16
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
16
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
16
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
16
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
17
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
17
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
18
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
18
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
18
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
19
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
19
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
20
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
20
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
20
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
21
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Probability that zi is compared to zj
22
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Probability that zi is compared to zj
23
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Probability that zi is compared to zj
24
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Probability that zi is compared to zj
25
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
26
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
26
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
26
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
26
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
26
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected number of comparisons
26
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
27
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Expected running time of randomized quicksort
27
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Order of growth of lg(n!)
I Stirling’s approximation:
28
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Order of growth of lg(n!)
I Stirling’s approximation:
1
I Leading term in Stirling’s approximation is nn+ 2
28
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Order of growth of lg(n!)
I Stirling’s approximation:
1
I Leading term in Stirling’s approximation is nn+ 2
I lg(n!) = Θ(n lg n)
28
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 8 : Sorting in Linear Time
I Comparison sort
29
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 8 : Sorting in Linear Time
I Comparison sort
I Worst case running time is at least Ω(n lg n).
29
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 8 : Sorting in Linear Time
I Comparison sort
I Worst case running time is at least Ω(n lg n).
I Is it possible to do better?
29
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 8 : Sorting in Linear Time
I Comparison sort
I Worst case running time is at least Ω(n lg n).
I Is it possible to do better? Can we have a sorting algorithm
whose worst case running time is o(n lg n) ?
29
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Ch. 8 : Sorting in Linear Time
I Comparison sort
I Worst case running time is at least Ω(n lg n).
I Is it possible to do better? Can we have a sorting algorithm
whose worst case running time is o(n lg n) ?
I We will show that any comparison sort must make at least
Ω(n lg n) comparisons in the worst case.
29
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Insertion sort : comparisons
30
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Merge procedure
31
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Quicksort Partition procedure
32
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound on number of comparisons for sorting:
Assumptions
I We will assume all input elements are distinct
33
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound on number of comparisons for sorting:
Assumptions
I We will assume all input elements are distinct
I All comparisons are of the form ai ≤ aj
33
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Decision tree for insertion sort
34
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Decision tree for insertion sort
34
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Decision tree for insertion sort
34
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
35
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
35
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
35
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
n! ≤ l
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
n! ≤ l ≤ 2h
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
n! ≤ l ≤ 2h
h ≥ lg(n!)
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
n! ≤ l ≤ 2h
h ≥ lg(n!)
≥ Θ(n lg n)
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
n! ≤ l ≤ 2h
h ≥ lg(n!)
≥ Θ(n lg n)
= Ω(n lg n)
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Lower bound for the worst case
n! ≤ l ≤ 2h
h ≥ lg(n!)
≥ Θ(n lg n)
= Ω(n lg n)
36
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Worst case lower bounds for computational problems
37
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Worst case lower bounds for computational problems
37
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Worst case lower bounds for computational problems
37
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort
38
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort
38
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort
38
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort
38
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort operations
39
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort operations
39
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort operations
39
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort operations
39
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort operations
39
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort operations
39
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Counting sort
40
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Running time of Counting sort
41
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Running time of Counting sort
41
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Running time of Counting sort
41
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Running time of Counting sort
41
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Running time of Counting sort
41
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Sorting in linear time
I Radix sort
42
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
Sorting in linear time
I Radix sort
I Bucket sort
42
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
I
43
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms
I
44
BITS-Pilani K. K. Birla Goa Campus Data Structures and Algorithms