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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DeleteMax – Ex 2 Reinsert 7. 626 51 79 8

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

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

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

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

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

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

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