26
1 CS4311 Design and Analysis of Algorithms Lecture 17: Binomial Heap

CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

Embed Size (px)

Citation preview

Page 1: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

1

CS4311Design and Analysis of

Algorithms

Lecture 17: Binomial Heap

Page 2: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

2

About this lecture•Binary heap supports various operations

quickly: extract-min, insert, decrease-key•If we already have two min-heaps, A and B,

there is no efficient way to combine theminto a single min-heap

•Introduce Binomial Heap•can support efficient union operation

Page 3: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

3

Mergeable Heaps•Mergeable heap : data structure that

supports the following 5 operations:

•Make-Heap( ) : return an empty heap•Insert(H,x,k) : insert an item x with

key k into a heap H•Find-Min(H) : return item with min key•Extract-Min(H) : return and remove•Union(H1, H2) : merge heaps H1 and H2

Page 4: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

4

Mergeable Heaps•Examples of mergeable heap :

Binomial Heap (this lecture)Fibonacci Heap (next lecture)

•Both heaps also support:•Decrease-Key(H,x,k) :

•assign item x with a smaller key k•Delete(H,x) : remove item x

Page 5: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

5

Binary Heap vs Binomial Heap

(1)(1)Make-Heap

(log n)(1)Find-Min

(log n)(log n)Delete

(log n)(log n)Insert

(log n)(n)Union

(log n)(log n)Decrease-Key

(log n)(log n)Extract-Min

BinomialHeap

BinaryHeap

Page 6: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

6

Binomial Heap•Unlike binary heap which consists of a

single tree, a binomial heap consists of asmall set of component trees•no need to rebuild everything when

union is perform

•Each component tree is in a specialformat, called a binomial tree

Page 7: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

7

Binomial TreeDefinition:

A binomial tree of order k, denoted byBk, is defined recursively as follows:•B0 is a tree with a single node•For k 1, Bk is formed by joining two

Bk-1, such that the root of one treebecomes the leftmost child of theroot of the other

Page 8: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

8

Binomial TreeB0 B1 B2 B3

B4

Page 9: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

9

Properties of Binomial TreeLemma: For a binomial tree Bk,

1. There are 2k nodes2. height = k3. deg(root) = k ; deg(other node) k4. Children of root, from left to right,

are Bk-1, Bk-2, …, B1, B0

5. Exactly C(k,i) nodes at depth I

How to prove? (By induction on k)

Page 10: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

10

Binomial Heap•Binomial heap of n elements consists of a

specific set of binomial trees

•Each binomial tree satisfies min-heapordering: for each node x,

key(x) key(parent(x))

•For each k, at most one binomial treewhose root has degree k(i.e., for each k, at most one Bk)

Page 11: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

11

Binomial HeapExample: A binomial heap with 13 elements

8

1325

41

15

19

33

35

21

32 16

52

12

Page 12: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

12

Binomial Heap•Let r = dlog (n+1)e, and

br-1, br-2, …, b2, b1, b0 be binary representation of n

•Then, we can see that an n-node binomialheap contains Bk if and only if bk = 1

•Also, an n-node binomial heap has atmost dlog (n+1)e binomial trees

Page 13: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

13

Binomial Heap

B0 B2B4

E.g., 21(dec) = 10101(bin)

any 21-node binomial heap must contain:

Page 14: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

14

Binomial Heap Operations•With the binomial heap,

•Make-Heap( ): O(1) time•Find-Min( ): O(log n) time•Decrease-Key( ): O(log n) time

[ Decrease-Key assumes we have the pointer tothe item x in which its key is changed ]

•Remaining operations : Based on Union( )

Page 15: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

15

Union Operation•Recall that:

an n–node binomial heapcorresponds to

binary representation of n•We shall see:

Union binomial heaps with n1 and n2 nodescorresponds to

adding n1 and n2 in binary representations

Page 16: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

16

Union Operation

•Let H1 and H2 be two binomial heaps

•To Union them, we process all binomialtrees in the two heaps with same ordertogether, starting with smaller orderfirst

•Let k be the order of the set of binomialtrees we currently process

Page 17: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

17

Union OperationThere are three cases:

1. If there is only one Bk done

2. If there are two Bk

Merge together, forming Bk+1

3. If there are three Bk

Leave one, merge remaining to Bk+1

After that, process next k

Page 18: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

18

Union two binomial heaps with 5 and 13 nodes

8

1325

41

15

19

33

35

21

32 16

52

12

9

1114

31

4

H1

H2

Page 19: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

19

8

1325

41

15

19

33

35

21

32 16

52

4

9

1114

31

12

afterprocessing

k = 0

Page 20: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

20

8

1325

41

15

19

33

35

21

32 16

52

4

9

1114

31

12

afterprocessing

k = 1, 2

Page 21: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

21

15

19

33

35

21

32 16

52

4

12

8

1325

41

9

1114

31

Done afterprocessing

k = 3

Page 22: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

22

Binomial Heap Operations

•So, Union( ) takes O(log n) time•For remaining operations,

Insert( ), Extract-Min( ), Delete( )how can they be done with Union?

•Insert(H, x, k): Create new heap H’, storing the item x

with key k; then, Union(H, H’)

Page 23: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

23

Binomial Heap Operations•Extract-Min(H): Find the tree Bj containing the min;

Detach Bj from H forming a heap H1 ;Remove root of Bj forming a heap H2 ;Finally, Union(H, H’)

•Delete(H, x): Decrease-Key(H,x,-1); Extract-Min(H);

Page 24: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

24

Extract-Min(H)Step 1: Find Bj with Min

8

1325

41

15

19

33

35

21

32 16

52

12H

Bj with Min

Page 25: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

25

8

1325

41

15

19

33

35

21

32 16

52

12H1

Extract-Min(H)Step 2: Forming two heaps

H2

Page 26: CS4311 Design and Analysis of Algorithmswkhon/algo08-lectures/lecture17.pdf · Design and Analysis of Algorithms Lecture 17: Binomial Heap. 2 About this lecture •Binary heap supports

26

1325

41

15

19

33

35

21

32 16

52

12

Extract-Min(H)Step 3: Union two heaps