Presentation is loading. Please wait.

Presentation is loading. Please wait.

Heaps © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps

Similar presentations


Presentation on theme: "Heaps © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps"— Presentation transcript:

1 Heaps 2 6 5 7 9 © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps
2/24/2019 Heaps 2 6 5 7 9 © 2014 Goodrich, Tamassia, Goldwasser Heaps

2 Recall Priority Queue ADT
A priority queue stores a collection of entries Each entry is a pair (key, value) Main methods of the Priority Queue ADT insert(k, v) inserts an entry with key k and value v removeMin() removes and returns the entry with smallest key Additional functions min() returns, but does not remove, an entry with smallest key size(), isEmpty() Applications: Standby flyers Auctions Stock market © 2014 Goodrich, Tamassia, Goldwasser Heaps

3 Heaps The last node of a heap is the rightmost node of maximum depth
2/24/2019 Heaps a binary tree with 2 properties: Heap-Order: for every internal node v other than the root, key(v)  key(parent(v)) “child”  “parent” -> root has min Book: “parent”  “child” -> root has max Same concept Complete Binary Tree: let h be the height of the heap for i = 0, … , h - 1, there are 2i nodes of depth i at depth h - 1, the internal nodes are to the left of the external nodes The last node of a heap is the rightmost node of maximum depth 2 5 6 9 7 last node © 2014 Goodrich, Tamassia, Goldwasser Heaps

4 Height of a Heap Theorem: A heap storing n keys has height O(log n)
Proof: (we apply the complete binary tree property) Let h be the height of a heap storing n keys Since there are 2i keys at depth i = 0, … , h - 1 and at least one key at depth h, we have n  … + 2h Thus, n  2h , i.e., h  log n depth keys 1 1 2 h-1 2h-1 h 1 © 2014 Goodrich, Tamassia, Goldwasser Heaps

5 Heaps and Priority Queues
We can use a heap to implement a priority queue We store a (key, element) item at each node We keep track of the position of the last node (2, Sue) (5, Pat) (6, Mark) (9, Jeff) (7, Anna) © 2014 Goodrich, Tamassia, Goldwasser Heaps

6 Insertion into a Heap Method insertItem of the priority queue ADT corresponds to the insertion of a key k to the heap The insertion algorithm consists of three steps Find the insertion node z (the new last node) Store k at z Restore the heap-order property (discussed next) 2 5 6 z 9 7 insertion node 2 5 6 z 9 7 1 © 2014 Goodrich, Tamassia, Goldwasser Heaps

7 Upheap (aka Heapify) z z After the insertion of a new key k, Upheap
the heap-order property may be violated Upheap swapping k along an upward path from the insertion node Upheap terminates when the key k reaches the root or a node whose parent has a key smaller than or equal to k Since a heap has height O(log n) upheap runs in O(log n) time 2 1 5 1 5 2 z z 9 7 6 9 7 6 © 2014 Goodrich, Tamassia, Goldwasser Heaps

8 Removal from a Heap Method removeMin of the priority queue ADT corresponds to the removal of the root key from the heap The removal algorithm consists of three steps Replace the root key with the key of the last node w Remove w Restore the heap-order property (discussed next) 2 5 6 w 9 7 last node 7 5 6 w 9 new last node © 2014 Goodrich, Tamassia, Goldwasser Heaps

9 Downheap After replacing the root key with the key k of the last node the heap-order property may be violated Downheap swapping key k along a downward path from the root Downheap terminates when key k reaches a leaf or a node whose children have keys greater than or equal to k Since a heap has height O(log n) downheap runs in O(log n) time 7 5 5 6 7 6 w w 9 9 © 2014 Goodrich, Tamassia, Goldwasser Heaps

10 select which one to swap?
Downheap 2 children-- select which one to swap? After replacing the root key with the key k of the last node the heap-order property may be violated Downheap swapping key k along a downward path from the root Downheap terminates when key k reaches a leaf or a node whose children have keys greater than or equal to k Since a heap has height O(log n) downheap runs in O(log n) time 7 5 5 6 7 6 w w 9 9 © 2014 Goodrich, Tamassia, Goldwasser Heaps

11 Worst-case Time Complexity
unsorted sorted heap Insert(entry) RemoveMin() [min()] © 2014 Goodrich, Tamassia, Goldwasser Priority Queues

12 Worst-case Time Complexity
unsorted sorted heap Insert(entry) O(1) O(N) O(log N) RemoveMin() [min()] © 2014 Goodrich, Tamassia, Goldwasser Priority Queues

13 Storing a heap Array-based Linked structure
© 2014 Goodrich, Tamassia, Goldwasser Heaps

14 Array-based Heap Implementation
We can represent a heap with n keys by means of an array of length n For the node at rank i the left child is at rank 2i + 1 the right child is at rank 2i + 2 Operation add corresponds to inserting at rank n + 1 Operation remove_min corresponds to removing at rank 0 2 5 6 9 7 2 5 6 9 7 1 3 4 © 2014 Goodrich, Tamassia, Goldwasser Heaps


Download ppt "Heaps © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps"

Similar presentations


Ads by Google