Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lec 6 Feb 17, 2011  Section 2.5 of text (review of heap)  Chapter 3.

Similar presentations


Presentation on theme: "Lec 6 Feb 17, 2011  Section 2.5 of text (review of heap)  Chapter 3."— Presentation transcript:

1 Lec 6 Feb 17, 2011  Section 2.5 of text (review of heap)  Chapter 3

2 Review of heap (Sec 2.5) Heap is a data structure that supports a priority queue. Two versions (Max-heap, min-heap) Max-heap operations (can do in O(log n) time.  Insert(H, x) – add x to H.  Delete-max(H) – remove the max elt. from H.  Other operations: increase-key, decrease-key, delete(j) – delete the key stored in index j of heap etc.  Operations that take O(n) time: search(x), delete(x) etc.

3 Min Heap with 9 Nodes Complete binary tree with 9 nodes.

4 Min Heap With 9 Nodes Min-heap property: A[k] <= A[2*k] (if 2*k <= n) and A[k] <= A[2*k+1] (if 2*k+1 <= n). 2 4 6793 86 3

5 Max Heap With 9 Nodes Example of a Max-heap 9 8 6726 51 7

6 Heap Height Since a heap is a complete binary tree, the height of an n node heap is log 2 (n+1).

7 987672651 123456789100 A Heap Is Efficiently Represented As An Array 9 8 6726 51 7

8 Moving Up And Down A Heap 9 8 6726 51 7 1 23 4 56 7 89 Parent of node with index k is k/2 Left child of a node with index j is 2*j Right child of a node with index j is 2*j + 1

9 Putting An Element Into A Max Heap Place to add the new key 9 8 6726 51 7 7

10 Putting An Element Into A Max Heap Example: New element is 5. 9 8 6726 51 7 75

11 Putting An Element Into A Max Heap New element is 20. 9 8 6 7 26 51 7 7 7

12 Putting An Element Into A Max Heap New element is 20. 9 8 6 7 26 51 7 7 7

13 Putting An Element Into A Max Heap New element is 20. 9 86 7 26 51 7 7 7

14 Putting An Element Into A Max Heap New element is 20. 9 86 7 26 51 7 7 7 20

15 Putting An Element Into A Max Heap Complete binary tree with 11 nodes. 9 86 7 26 51 7 7 7 20

16 Putting An Element Into A Max Heap New element is 15. 9 86 7 26 51 7 7 7 20

17 Putting An Element Into A Max Heap New element is 15. 9 8 6 7 26 51 7 7 7 20 8

18 Putting An Element Into A Max Heap New element is 15. 8 6 7 26 51 7 7 7 20 8 9 15

19 Complexity of insert Complexity is O(log n), where n is heap size. 8 6 7 26 51 7 7 7 20 8 9 15

20 DeleteMax operation Max element is in the root. 8 6 7 26 51 7 7 7 20 8 9 15

21 DeleteMax After max element is removed. 8 6 7 26 51 7 7 7 8 9 15

22 DeleteMax Heap with 10 nodes. Location needs to be vacated. Find the right place to reinsert 8. 8 6 7 26 51 7 7 7 8 9 15

23 DeleteMax 6 7 26 51 7 7 7 9 15 Reinsert 8 into the heap.

24 DeleteMax Reinsert 8 into the heap. 6 7 26 51 7 7 7 9 15

25 DeleteMax Reinsert 8 into the heap. 6 7 26 51 7 7 7 9 15 8

26 DeleteMax – Another example Max element is 15. 6 7 26 51 7 7 7 9 15 8

27 DeleteMax – Ex 2 After max element is removed. 6 7 26 51 7 7 7 9 8

28 DeleteMax – Ex 2 Heap with 9 nodes. 6 7 26 51 7 7 7 9 8

29 DeleteMax – Ex 2 Reinsert 7. 626 51 79 8

30 DeleteMax – Ex 2 Reinsert 7. 626 51 7 9 8

31 DeleteMax – Ex 2 Reinsert 7. 626 51 7 9 8 7

32 Complexity of DeleteMax Complexity is O(log n). Involves working down the heap, two comparisons and 1 assignment per level. There are at most log 2 (n+1) levels. Total complexity <= 3 log 2 (n+1) = O(log n). 626 51 7 9 8 7

33 Delete a key at a given index Want an algorithm of complexity O(log n). 626 51 7 9 8 7 Delete (2)

34 Delete a key at a given index To perform Delete(j): A[j] = A[size]; size--; adjust the heap at position j; How to adjust? 626 51 7 9 8 7 Delete (2) similar to DeleteMax

35 Delete a key at a given index : Ex – 2 1626 15 7 19 18 17 Delete (6) Adjustment may require percolate_up or percolate_down

36 Augmenting a heap Suggest a data structure that acts like both a min-heap and max-heap. i.e., it should support all three operations in O(log n) time: Insert DeleteMin DeleteMax Any suggestion?


Download ppt "Lec 6 Feb 17, 2011  Section 2.5 of text (review of heap)  Chapter 3."

Similar presentations


Ads by Google