Download presentation
Presentation is loading. Please wait.
1
Heapsort
2
Heapsort: Algorithm void heapify(Elem[] a, 1, n )
{ for( i = n/2; i > 0; i--) { buildheap(a, i, n ) } void buildheap(Elem[] a, i, n ) { int j = 2*i int b = a[i] while( j <= n) { if( j+1 <=n && a[ j] < a[ j+1] ) j = j+1; if( b < a[ j] ) a[i] = a[ j ] i = j j = 2*i a[ j/2 ] = b void Heapsort( Elem[] a, 1, n) { heapify( a, 1, n ) for( i = n; i>=2; i--) { swap( a[1], a[ i ] ) buildheap( a, 1, i-1)
3
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 60 42 83 4 5 6 7 72 48 85 heapify… 8 9 10 73 6 57 88 60 42 83 72 48 85 Sequence: 1 2 3 4 5 6 7 8 9 10
4
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 60 42 83 4 5 6 7 72 48 85 8 9 10 73 6 57 88 60 42 83 72 48 85 Sequence: 1 2 3 4 5 6 7 8 9 10
5
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 60 42 83 4 5 6 7 72 48 85 8 9 10 73 6 57 88 60 42 83 72 48 85 Sequence: 1 2 3 4 5 6 7 8 9 10
6
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
7
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
8
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
9
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
10
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
11
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
12
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
13
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
14
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
15
Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
16
Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
17
Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
18
Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
19
Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
20
Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
21
Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
22
Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
23
Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
24
Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
25
Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
26
Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
27
Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
28
Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
29
Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
30
Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
31
Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
32
Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
33
Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
34
Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
35
Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
36
Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
37
Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
38
Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
39
Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
40
Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 Heapified ! 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
41
Heapsort:Illustration (swap)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 swap. 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10
42
Heapsort:Illustration (swap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
43
Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 buildheap... 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
44
Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
45
Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
46
Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
47
Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
48
Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
49
Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
50
Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
51
Heapsort:Illustration (buildheap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
52
Heapsort:Illustration (buildheap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
53
Heapsort:Illustration (buildheap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 heap built. 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
54
Heapsort:Illustration (swap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 swap. 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10
55
Heapsort:Illustration (swap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
56
Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 buildheap… 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
57
Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
58
Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
59
Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
60
Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
61
Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
62
Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
63
Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
64
Heapsort:Illustration (buildheap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
65
Heapsort:Illustration (buildheap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
66
Heapsort:Illustration (buildheap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 heap built. 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
67
Heapsort:Illustration (swap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 swap. 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
68
Heapsort:Illustration (swap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
69
Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 buildheap... 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
70
Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
71
Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
72
Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
73
Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
74
Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
75
Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
76
Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
77
Heapsort:Illustration (buildheap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
78
Heapsort:Illustration (buildheap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
79
Heapsort:Illustration (buildheap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 heap built. 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
80
Heapsort:Illustration (swap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 swap. 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
81
Heapsort:Illustration (swap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
82
Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 build heap... 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
83
Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
84
Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
85
Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
86
Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
87
Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
88
Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
89
Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
90
Heapsort:Illustration (buildheap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
91
Heapsort:Illustration (buildheap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
92
Heapsort:Illustration (buildheap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 heap built. 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
93
Heapsort:Illustration (swap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 swap. 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
94
Heapsort:Illustration (swap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
95
Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
96
Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
97
Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
98
Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
99
Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
100
Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
101
Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
102
Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
103
Heapsort:Illustration (buildheap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
104
Heapsort:Illustration (buildheap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
105
Heapsort:Illustration (buildheap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 heap built... 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
106
Heapsort:Illustration (swap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 swap... 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
107
Heapsort:Illustration (swap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
108
Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
109
Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
110
Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
111
Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
112
Heapsort:Illustration (buildheap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
113
Heapsort:Illustration (buildheap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
114
Heapsort:Illustration (buildheap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 heap built. 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
115
Heapsort:Illustration (swap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 swap. 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
116
Heapsort:Illustration (swap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
117
Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
118
Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
119
Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
120
Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
121
Heapsort:Illustration (buildheap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
122
Heapsort:Illustration (buildheap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
123
Heapsort:Illustration (buildheap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 heap built. 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
124
Heapsort:Illustration (swap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 swap. 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
125
Heapsort:Illustration (swap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
126
Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
127
Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
128
Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
129
Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
130
Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 heap built. 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
131
Heapsort:Illustration (swap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 swap. 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
132
Heapsort:Illustration (swap)
6 1 42 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 42 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
133
Heapsort:Illustration
6 1 42 48 2 3 57 60 72 73 4 5 6 7 83 85 88 almost there… 8 9 10 6 42 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
134
Heapsort:Illustration (swap)
6 1 42 48 2 3 57 60 72 73 4 5 6 7 83 85 88 SORTED ! 8 9 10 6 42 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10
135
Heapsort: Time complexity
heapify() takes O(n) time n buildheap()s each take O( log2n ) time Best, worst, average-case O(nlog2n)
136
Binsort: Algorithm void binsort( Elem[] a, int n ) {
List[] B = new List[ MAX_KEY_VALUE ] for( i=0; I<n; I++ ) B[ a[i].key ].append( a[i] ) int index = 0 for( i=0; i< MAX_KEY_VALUE; i++) { for( B[i].first(); B[i].isInList(); B[i].next() ) { a[i] = B[i].currentValue() }
137
Bucketsort: Algorithm
Put a range of values in bins and then sort the contents of each bin and then output the values of each bin in order.
138
Radixsort: Algorithm void radixsort( Elem[] a, Elem[] B, int n, int k, int r, Elem[] count) { // count[i] stores the number of records in bin[i] for( int i=0, rtok=1; i<k; i++, rtok*=r) //for k digits { for( int j=0; j<r; j++) count[j]=0; //initialize count //Count the no. of records for each bin on this pass for( j=0; j<n; j++ ) count[ (a[j].key / rtok) % r ] ++ // Index B: count [j] will be index for last slot of bin j for( j=1; j<r; j++ ) count[j] = count[j-1] + count[j] // put records into bins working from bottom of each bin // since bins fill from the bottom, j counts downwards for( j=n-1; j>=0; j--) B[--count[ (a[j].key / rtok) % r ] ] = a[j] for( j=0; j<n; j++ ) a[j] = B[j] //copy B back into a }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.