Binary and Binomial Heaps: Priority Queues
Binary and Binomial Heaps: Priority Queues
Insert element x.
Applications.
Event-driven simulation.
Huffman encoding.
Heapsort.
...
Princeton University COS 423 Theory of Algorithms Spring 2002 Kevin Wayne
Priority Queues
Heaps
Operation
Linked List
Binary
Binomial
Fibonacci *
Relaxed
make-heap
insert
log N
log N
find-min
log N
delete-min
log N
log N
log N
log N
union
log N
decrease-key
log N
log N
delete
log N
log N
log N
log N
is-empty
Dijkstra/Prim
1 make-heap
|V| insert
|V| delete-min
|E| decrease-key
3
O(|V|2)
Binary heap.
Properties.
Min-heap ordered.
every child greater than (or equal to) parent
06
06
14
78
91
83
14
45
18
47
77
81
84
78
53
99
N = 14
Height = 3
18
91
83
64
45
47
77
81
84
53
99
64
06
06
1
14
45
14
78
18
47
53
83
91
81
10
77
84
99
64
11
12
13
14
78
83
45
47
18
91
81
77
84
53
99
64
42
14
14
47
77
81
84
78
53
99
06
45
18
91
83
06
78
64
18
91
83
42
45
47
77
81
84
42
99
64
53
42
10
O(log N) operations.
O(log N) operations.
stop: heap ordered
06
14
78
83
81
14
42
47
18
91
06
77
84
78
45
99
64
83
53
11
42
47
18
91
81
77
84
45
99
64
53
12
06
53
14
78
18
91
83
14
42
47
77
81
84
78
45
99
64
18
91
83
53
42
47
77
81
84
45
99
64
06
13
14
14
83
81
53
47
77
84
78
45
99
14
42
18
91
53
78
83
64
15
42
47
18
91
81
77
84
45
99
64
16
Heapsort.
18
No extra storage.
42
78
53
91
14
83
47
77
81
84
45
99
64
17
18
Priority Queues
Heaps
Union.
Operation
Linked List
Binary
Binomial
Fibonacci *
Relaxed
No easy solution.
(N) operations apparently required
make-heap
insert
log N
log N
find-min
log N
delete-min
log N
log N
log N
log N
H1
H2
union
log N
14
11
decrease-key
log N
log N
delete
log N
log N
log N
log N
is-empty
78
41
18
91
81
53
77
84
62
99
64
19
20
Binomial Tree
Binomial Tree
Binomial tree.
Recursive definition:
Bk
B0
Height = k.
Degree of root = k.
Bk-1
Bk+1
Bk-1
Bk
Proof.
B0
B1
B2
B3
B0
B4
B2
B1
B0
By induction on k.
B1
B2
B3
B4
21
22
Binomial Tree
Binomial Heap
Bk has
k
i
nodes at depth i.
4
=6
2
depth 0
depth 1
depth 2
depth 3
depth 4
45
B4
30
23
32
24
22
48
29
10
31
17
44
37
18
50
55
B4
23
B1
B0
24
Implementation.
heap
29
10
44
37
18
17
18
37
48
50
10
31
17
44
37
30
23
32
24
22
48
31
18
N = 19
# trees = 3
height = 4
binary = 10011
10
45
50
29
t
gh
Ri
31
29
ft
Le
48
nt
re
a
P
17
50
44
55
Binomial Heap
B4
B1
B0
25
26
"Mergeable heaps."
Easy if H and H are each order k binomial trees.
connect roots of H and H
choose smaller key to be root of H
30
45
32
23
22
24
48
29
10
31
17
45
44
30
23
32
24
22
48
29
10
31
17
44
37
28
55
33
25
12
41
19 + 7 = 26
H
50
50
55
15
18
H
27
28
12
18
30
23
22
48
29
10
31
17
44
37
15
45
32
24
18
45
28
33
23
32
24
22
48
10
31
17
44
37
12
50
55
30
29
33
25
12
50
25
41
15
18
28
55
41
29
12
37
18
30
25
28
15
33
25
37
12
37
18
25
41
30
23
22
48
29
10
31
17
44
37
15
45
55
32
24
18
45
33
23
32
24
22
48
10
31
17
44
37
12
50
28
30
29
25
41
55
15
33
25
12
50
28
41
12
12
18
18
31
18
32
28
15
33
25
37
12
37
18
25
28
41
30
23
22
48
29
10
31
17
32
24
44
37
18
45
28
18
15
33
25
30
23
32
24
22
48
29
10
31
17
44
37
12
37
18
15
33
25
18
12
50
28
41
45
30
23
32
24
22
48
29
10
31
17
44
28
50
15
33
25
12
37
18
41
55
33
34
37
25
55
41
25
25
33
41
28
33
37
12
50
55
12
41
15
45
15
19 + 7 = 26
45
30
23
32
24
22
48
29
10
31
17
44
37
18
50
55
35
36
H Union(H, H)
Running time. O(log N)
45
30
23
32
24
22
48
29
10
31
17
44
18
depth = 3
37
H
x
50
55
30
23
32
24
22
48
29
10
31
17
44
37
18
50
55
37
38
Decrease key of x to -.
Delete min.
H MakeHeap(x)
H Union(H, H)
45
30
23
32
24
22
48
29
10
31
17
44
37
18
50
55
39
40
48
29
10
31
17
Priority Queues
44
37
Heaps
50
nn
n=1 2
= 2 NN N11
2
2
2
Operation
Linked List
Binary
Binomial
Fibonacci *
Relaxed
make-heap
insert
log N
log N
find-min
log N
delete-min
log N
log N
log N
log N
union
log N
decrease-key
log N
log N
delete
log N
log N
log N
log N
is-empty
42