8.2 binomial heaps8.2 binomial heaps operation binary heap bst binomial heap fibonacci heap* build n...
TRANSCRIPT
![Page 1: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/1.jpg)
8.2 Binomial Heaps
Operation Binary Heap BSTBinomial
HeapFibonacci
Heap*
build n n logn n logn nminimum 1 logn logn 1
is-empty 1 1 1 1
insert logn logn logn 1
delete logn** logn logn logndelete-min logn logn logn logndecrease-key logn logn logn 1
merge n n logn log n 1
EADS
c© Ernst Mayr, Harald Räcke 288/596
![Page 2: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/2.jpg)
Binomial Trees
B0 B1 B2 B3 B4
Bt−1
Bt−1
Bt
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 289/596
![Page 3: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/3.jpg)
Binomial Trees
Properties of Binomial Trees
ñ Bk has 2k nodes.
ñ Bk has height k.
ñ The root of Bk has degree k.
ñ Bk has(k`
)nodes on level `.
ñ Deleting the root of Bk gives trees B0, B1, . . . , Bk−1.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 290/596
![Page 4: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/4.jpg)
Binomial Trees
Properties of Binomial Trees
ñ Bk has 2k nodes.
ñ Bk has height k.
ñ The root of Bk has degree k.
ñ Bk has(k`
)nodes on level `.
ñ Deleting the root of Bk gives trees B0, B1, . . . , Bk−1.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 290/596
![Page 5: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/5.jpg)
Binomial Trees
Properties of Binomial Trees
ñ Bk has 2k nodes.
ñ Bk has height k.
ñ The root of Bk has degree k.
ñ Bk has(k`
)nodes on level `.
ñ Deleting the root of Bk gives trees B0, B1, . . . , Bk−1.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 290/596
![Page 6: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/6.jpg)
Binomial Trees
Properties of Binomial Trees
ñ Bk has 2k nodes.
ñ Bk has height k.
ñ The root of Bk has degree k.
ñ Bk has(k`
)nodes on level `.
ñ Deleting the root of Bk gives trees B0, B1, . . . , Bk−1.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 290/596
![Page 7: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/7.jpg)
Binomial Trees
Properties of Binomial Trees
ñ Bk has 2k nodes.
ñ Bk has height k.
ñ The root of Bk has degree k.
ñ Bk has(k`
)nodes on level `.
ñ Deleting the root of Bk gives trees B0, B1, . . . , Bk−1.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 290/596
![Page 8: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/8.jpg)
Binomial Trees
B4
B3
B2
B1
B0
Deleting the root of B5 leaves sub-trees B4, B3, B2, and B1.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 291/596
![Page 9: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/9.jpg)
Binomial Trees
Bk−1
Bk−1
Bk
(k−1`
)
(k−1`−1
)
The number of nodes on level ` in tree Bk is therefore
(k− 1` − 1
)+(k− 1`
)=(k`
)
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 292/596
![Page 10: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/10.jpg)
Binomial Trees
0000
00010010
0011
0100
01010110
0111
1000
10011010
1011
1100
11011110
1111
The binomial tree Bk is a sub-graph of the hypercube Hk.
The parent of a node with label bn, . . . , b1, b0 is obtained by
setting the least significant 1-bit to 0.
The `-th level contains nodes that have ` 1’s in their label.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 293/596
![Page 11: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/11.jpg)
Binomial Trees
0000
00010010
0011
0100
01010110
0111
1000
10011010
1011
1100
11011110
1111
The binomial tree Bk is a sub-graph of the hypercube Hk.
The parent of a node with label bn, . . . , b1, b0 is obtained by
setting the least significant 1-bit to 0.
The `-th level contains nodes that have ` 1’s in their label.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 293/596
![Page 12: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/12.jpg)
Binomial Trees
0000
00010010
0011
0100
01010110
0111
1000
10011010
1011
1100
11011110
1111
The binomial tree Bk is a sub-graph of the hypercube Hk.
The parent of a node with label bn, . . . , b1, b0 is obtained by
setting the least significant 1-bit to 0.
The `-th level contains nodes that have ` 1’s in their label.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 293/596
![Page 13: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/13.jpg)
Binomial Trees
0000
00010010
0011
0100
01010110
0111
1000
10011010
1011
1100
11011110
1111
The binomial tree Bk is a sub-graph of the hypercube Hk.
The parent of a node with label bn, . . . , b1, b0 is obtained by
setting the least significant 1-bit to 0.
The `-th level contains nodes that have ` 1’s in their label.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 293/596
![Page 14: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/14.jpg)
8.2 Binomial Heaps
How do we implement trees with non-constant degree?
ñ The children of a node are arranged in a circular linked list.
ñ A child-pointer points to an arbitrary node within the list.
ñ A parent-pointer points to the parent node.
ñ Pointers x. left and x. right point to the left and right sibling
of x (if x does not have children then x. left = x. right = x).
p
x
a b c d
parent
child
rightleft
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 294/596
![Page 15: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/15.jpg)
8.2 Binomial Heaps
How do we implement trees with non-constant degree?
ñ The children of a node are arranged in a circular linked list.
ñ A child-pointer points to an arbitrary node within the list.
ñ A parent-pointer points to the parent node.
ñ Pointers x. left and x. right point to the left and right sibling
of x (if x does not have children then x. left = x. right = x).
p
x
a b c d
parent
child
rightleft
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 294/596
![Page 16: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/16.jpg)
8.2 Binomial Heaps
How do we implement trees with non-constant degree?
ñ The children of a node are arranged in a circular linked list.
ñ A child-pointer points to an arbitrary node within the list.
ñ A parent-pointer points to the parent node.
ñ Pointers x. left and x. right point to the left and right sibling
of x (if x does not have children then x. left = x. right = x).
p
x
a b c d
parent
child
rightleft
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 294/596
![Page 17: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/17.jpg)
8.2 Binomial Heaps
How do we implement trees with non-constant degree?
ñ The children of a node are arranged in a circular linked list.
ñ A child-pointer points to an arbitrary node within the list.
ñ A parent-pointer points to the parent node.
ñ Pointers x. left and x. right point to the left and right sibling
of x (if x does not have children then x. left = x. right = x).
p
x
a b c d
parent
child
rightleft
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 294/596
![Page 18: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/18.jpg)
Binomial Heap
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
In a binomial heap the keys are arranged in a collection of
binomial trees.
Every tree fulfills the heap-property
There is at most one tree for every dimension/order. For example
the above heap contains trees B0, B1, and B4.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 295/596
![Page 19: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/19.jpg)
Binomial Heap
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
In a binomial heap the keys are arranged in a collection of
binomial trees.
Every tree fulfills the heap-property
There is at most one tree for every dimension/order. For example
the above heap contains trees B0, B1, and B4.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 295/596
![Page 20: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/20.jpg)
Binomial Heap
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
In a binomial heap the keys are arranged in a collection of
binomial trees.
Every tree fulfills the heap-property
There is at most one tree for every dimension/order. For example
the above heap contains trees B0, B1, and B4.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 295/596
![Page 21: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/21.jpg)
Binomial Heap
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
In a binomial heap the keys are arranged in a collection of
binomial trees.
Every tree fulfills the heap-property
There is at most one tree for every dimension/order. For example
the above heap contains trees B0, B1, and B4.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 295/596
![Page 22: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/22.jpg)
Binomial Heap: Merge
Given the number n of keys to be stored in a binomial heap we
can deduce the binomial trees that will be contained in the
collection.
Let Bk1 , Bk2 , Bk3 , ki < ki+1 denote the binomial trees in the
collection and recall that every tree may be contained at most
once.
Then n =∑i 2ki must hold. But since the ki are all distinct this
means that the ki define the non-zero bit-positions in the dual
representation of n.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 296/596
![Page 23: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/23.jpg)
Binomial Heap: Merge
Given the number n of keys to be stored in a binomial heap we
can deduce the binomial trees that will be contained in the
collection.
Let Bk1 , Bk2 , Bk3 , ki < ki+1 denote the binomial trees in the
collection and recall that every tree may be contained at most
once.
Then n =∑i 2ki must hold. But since the ki are all distinct this
means that the ki define the non-zero bit-positions in the dual
representation of n.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 296/596
![Page 24: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/24.jpg)
Binomial Heap: Merge
Given the number n of keys to be stored in a binomial heap we
can deduce the binomial trees that will be contained in the
collection.
Let Bk1 , Bk2 , Bk3 , ki < ki+1 denote the binomial trees in the
collection and recall that every tree may be contained at most
once.
Then n =∑i 2ki must hold. But since the ki are all distinct this
means that the ki define the non-zero bit-positions in the dual
representation of n.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 296/596
![Page 25: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/25.jpg)
Binomial Heap: Merge
Given the number n of keys to be stored in a binomial heap we
can deduce the binomial trees that will be contained in the
collection.
Let Bk1 , Bk2 , Bk3 , ki < ki+1 denote the binomial trees in the
collection and recall that every tree may be contained at most
once.
Then n =∑i 2ki must hold. But since the ki are all distinct this
means that the ki define the non-zero bit-positions in the dual
representation of n.
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 296/596
![Page 26: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/26.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 27: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/27.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 28: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/28.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 29: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/29.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 30: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/30.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 31: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/31.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 32: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/32.jpg)
Binomial Heap
Properties of a heap with n keys:
ñ Let n = bdbd−1, . . . , b0 denote the dual representation of n.ñ The heap contains tree Bi iff bi = 1.ñ Hence, at most blognc + 1 trees.ñ The minimum must be contained in one of the roots.ñ The height of the largest tree is at most blognc.ñ The trees are stored in a single-linked list; ordered by
dimension/size.
712
47
2
148
31
11
2924
70
13
3516
20
37
4239
92
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 297/596
![Page 33: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/33.jpg)
Binomial Heap: Merge
The merge-operation is instrumental for binomial heaps.
A merge is easy if we have two heaps with different binomial trees.
We can simply merge the tree-lists.
Note that we do not just do aconcatenation as we want tokeep the trees in the listsorted according to size.
Otherwise, we cannot do this because the merged heap is not
allowed to contain two trees of the same order.
Merging two trees of the same size: Add
the tree with larger root-value as a child to
the other tree.
For more trees the technique is analogous
to binary addition.
2
76
15
5
918
22
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 298/596
![Page 34: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/34.jpg)
Binomial Heap: Merge
The merge-operation is instrumental for binomial heaps.
A merge is easy if we have two heaps with different binomial trees.
We can simply merge the tree-lists.
Note that we do not just do aconcatenation as we want tokeep the trees in the listsorted according to size.
Otherwise, we cannot do this because the merged heap is not
allowed to contain two trees of the same order.
Merging two trees of the same size: Add
the tree with larger root-value as a child to
the other tree.
For more trees the technique is analogous
to binary addition.
2
76
15
5
918
22
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 298/596
![Page 35: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/35.jpg)
Binomial Heap: Merge
The merge-operation is instrumental for binomial heaps.
A merge is easy if we have two heaps with different binomial trees.
We can simply merge the tree-lists.
Note that we do not just do aconcatenation as we want tokeep the trees in the listsorted according to size.
Otherwise, we cannot do this because the merged heap is not
allowed to contain two trees of the same order.
Merging two trees of the same size: Add
the tree with larger root-value as a child to
the other tree.
For more trees the technique is analogous
to binary addition.
2
76
15
5
918
22
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 298/596
![Page 36: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/36.jpg)
Binomial Heap: Merge
The merge-operation is instrumental for binomial heaps.
A merge is easy if we have two heaps with different binomial trees.
We can simply merge the tree-lists.
Note that we do not just do aconcatenation as we want tokeep the trees in the listsorted according to size.
Otherwise, we cannot do this because the merged heap is not
allowed to contain two trees of the same order.
Merging two trees of the same size: Add
the tree with larger root-value as a child to
the other tree.
For more trees the technique is analogous
to binary addition.
2
76
15
5
918
22
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 298/596
![Page 37: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/37.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
0
19
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 38: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/38.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
0
19
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 39: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/39.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
0
19
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 40: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/40.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
0
19
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 41: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/41.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
0
19
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 42: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/42.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
0
19
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 43: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/43.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 44: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/44.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 45: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/45.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 46: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/46.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 47: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/47.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 48: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/48.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 49: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/49.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 50: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/50.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 51: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/51.jpg)
4014
17
2
590
94
19
3027
42
3
2118
26
9
1346
54
194
39
14
2216
29
19
40
4
3914
17
4
3914
17
14
2216
29
019
40
4
3914
17
14
2216
29
2
590
94
19
3027
42
3
2118
26
9
1346
54
![Page 52: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/52.jpg)
8.2 Binomial Heaps
S1.merge(S2):ñ Analogous to binary addition.
ñ Time is proportional to the number of trees in both heaps.
ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 300/596
![Page 53: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/53.jpg)
8.2 Binomial Heaps
S1.merge(S2):ñ Analogous to binary addition.
ñ Time is proportional to the number of trees in both heaps.
ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 300/596
![Page 54: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/54.jpg)
8.2 Binomial Heaps
S1.merge(S2):ñ Analogous to binary addition.
ñ Time is proportional to the number of trees in both heaps.
ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 300/596
![Page 55: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/55.jpg)
8.2 Binomial Heaps
All other operations can be reduced to merge().
S.insert(x):ñ Create a new heap S′ that contains just the element x.
ñ Execute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 301/596
![Page 56: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/56.jpg)
8.2 Binomial Heaps
All other operations can be reduced to merge().
S.insert(x):ñ Create a new heap S′ that contains just the element x.
ñ Execute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 301/596
![Page 57: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/57.jpg)
8.2 Binomial Heaps
All other operations can be reduced to merge().
S.insert(x):ñ Create a new heap S′ that contains just the element x.
ñ Execute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 301/596
![Page 58: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/58.jpg)
8.2 Binomial Heaps
S.minimum():ñ Find the minimum key-value among all roots.
ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 302/596
![Page 59: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/59.jpg)
8.2 Binomial Heaps
S.delete-min():ñ Find the minimum key-value among all roots.
ñ Remove the corresponding tree Tmin from the heap.
ñ Create a new heap S′ that contains the trees obtained from
Tmin after deleting the root (note that these are just O(logn)trees).
ñ Compute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 303/596
![Page 60: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/60.jpg)
8.2 Binomial Heaps
S.delete-min():ñ Find the minimum key-value among all roots.
ñ Remove the corresponding tree Tmin from the heap.
ñ Create a new heap S′ that contains the trees obtained from
Tmin after deleting the root (note that these are just O(logn)trees).
ñ Compute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 303/596
![Page 61: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/61.jpg)
8.2 Binomial Heaps
S.delete-min():ñ Find the minimum key-value among all roots.
ñ Remove the corresponding tree Tmin from the heap.
ñ Create a new heap S′ that contains the trees obtained from
Tmin after deleting the root (note that these are just O(logn)trees).
ñ Compute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 303/596
![Page 62: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/62.jpg)
8.2 Binomial Heaps
S.delete-min():ñ Find the minimum key-value among all roots.
ñ Remove the corresponding tree Tmin from the heap.
ñ Create a new heap S′ that contains the trees obtained from
Tmin after deleting the root (note that these are just O(logn)trees).
ñ Compute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 303/596
![Page 63: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/63.jpg)
8.2 Binomial Heaps
S.delete-min():ñ Find the minimum key-value among all roots.
ñ Remove the corresponding tree Tmin from the heap.
ñ Create a new heap S′ that contains the trees obtained from
Tmin after deleting the root (note that these are just O(logn)trees).
ñ Compute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 303/596
![Page 64: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/64.jpg)
8.2 Binomial Heaps
S.delete-min():ñ Find the minimum key-value among all roots.
ñ Remove the corresponding tree Tmin from the heap.
ñ Create a new heap S′ that contains the trees obtained from
Tmin after deleting the root (note that these are just O(logn)trees).
ñ Compute S.merge(S′).ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 303/596
![Page 65: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/65.jpg)
8.2 Binomial Heaps
S.decrease-key(handle h):ñ Decrease the key of the element pointed to by h.
ñ Bubble the element up in the tree until the heap property is
fulfilled.
ñ Time: O(logn) since the trees have height O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 304/596
![Page 66: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/66.jpg)
8.2 Binomial Heaps
S.decrease-key(handle h):ñ Decrease the key of the element pointed to by h.
ñ Bubble the element up in the tree until the heap property is
fulfilled.
ñ Time: O(logn) since the trees have height O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 304/596
![Page 67: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/67.jpg)
8.2 Binomial Heaps
S.decrease-key(handle h):ñ Decrease the key of the element pointed to by h.
ñ Bubble the element up in the tree until the heap property is
fulfilled.
ñ Time: O(logn) since the trees have height O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 304/596
![Page 68: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/68.jpg)
8.2 Binomial Heaps
S.decrease-key(handle h):ñ Decrease the key of the element pointed to by h.
ñ Bubble the element up in the tree until the heap property is
fulfilled.
ñ Time: O(logn) since the trees have height O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 304/596
![Page 69: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/69.jpg)
8.2 Binomial Heaps
S.delete(handle h):ñ Execute S.decrease-key(h,−∞).ñ Execute S.delete-min().ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 305/596
![Page 70: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/70.jpg)
8.2 Binomial Heaps
S.delete(handle h):ñ Execute S.decrease-key(h,−∞).ñ Execute S.delete-min().ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 305/596
![Page 71: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/71.jpg)
8.2 Binomial Heaps
S.delete(handle h):ñ Execute S.decrease-key(h,−∞).ñ Execute S.delete-min().ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 305/596
![Page 72: 8.2 Binomial Heaps8.2 Binomial Heaps Operation Binary Heap BST Binomial Heap Fibonacci Heap* build n nlogn nlogn n minimum 1 logn logn 1 is-empty 1 1 1 1 insert logn logn logn 1 delete](https://reader036.vdocuments.site/reader036/viewer/2022070823/5f32672d58d497561e36405f/html5/thumbnails/72.jpg)
8.2 Binomial Heaps
S.delete(handle h):ñ Execute S.decrease-key(h,−∞).ñ Execute S.delete-min().ñ Time: O(logn).
EADS 8.2 Binomial Heaps
c© Ernst Mayr, Harald Räcke 305/596