Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Science 2 Heaps.

Similar presentations


Presentation on theme: "Computer Science 2 Heaps."— Presentation transcript:

1 Computer Science 2 Heaps

2 Learning Objectives Understand the properties of a heap
Understand how to add to a heap Understand how to remove from a heap

3 Uses for Heaps Priority Queue. Efficient way of having the first element on the top of the heap. Heapsort: O(N log N) Better worst case scenario than using a Tree to sort

4 Properties of a Heap Full Tree
Parents are greater than their children.

5 Heaps: Examples Are heaps BSTs ?? wrong! 24 7 3 30 10 40 80 25 48 21
14 17 33 9 18 28 11 22 35 50 20 wrong! Are heaps BSTs ??

6 Inserting a node Increase the size by 1
Add it to the bottom of the heap Reheap up. While the child is greater than its parents Switch them

7 Heaps: Insertion example
Adding a new node with key = 8 at the “end” of this heap violates the order property. New node has larger key than its parent, swap nodes to fix this. 16 5 11 3 8 Is the order property restored? Is 3 < 8? Yes. Is 8 < 16? Yes. Is this a coincidence? 16 8 11 3 5

8 Heaps: Insertion example
If the new node had had key = 18, what would have happened? 16 5 11 3 18 Swap with the parent. Is the order property restored? Is 3 < 18? Yes. Is 18 < 16? No. 16 18 11 3 5

9 Heaps: Insertion example
Swap again: order property restored. 18 16 11 3 5 In general, we “bubble up” the new node until the order property is restored.

10 Your Turn Create a heap by adding the following values 20, 10, 30, 15
Add the following to the heap 40, 18, 32

11 Removing from a Heap Take off the top Move the bottom to the top
Decrease the size of the heap Reheap Down If the top < greatest child Switch top and greatest child Continue until the parent is not < it’s greatest child.

12 Heaps: Removing largest key
The largest key is at the top. Remove it. Move “last” node to the top, to maintain shape. ‘Re-heap down’ until the order property is restored. 18 16 11 16 11 3 5 3 5

13 Heaps: Removing largest key
5 16 16 11 5 11 3 3 Did we have to reheap down the left? Why?

14 Removal: another example
y p r d f a c k b c p r d f a k b r p c d f a k b r p k d f a c b

15 Your Turn Using the heap created previously
Show what it looks like after removing one item.

16 Implementing it into an array: Adding
How do you find the parents of a child? ChildPosition / 2 Adding to a heap Increase the size by 1 Add it to the bottom of the heap Reheap up. While the child is greater than its parent Switch them Size 8 r p k d f a c b Dry run. Add a z and a q to the heap. 1 2 3 4 5 6 7 8 9 10 R P K D F C B A

17 Implementing it into an array: Removing
How do you find the children? parentPosition*2 and parentPosition*2 +1 Size 8 Removing Take off the top Move the bottom value to the top Decrease the size of the heap Reheap Down While there are children and added < greatest child Switch added and greatest child r p k d f a c b 1 2 3 4 5 6 7 8 9 10 R P K D F C B A

18 Heaps of Fun Program Menu Push: Add Show All
Show and remove the top of the heap. Push: Implement a heap sort Switch top and bottom Rehead down, excluding the last element(s)


Download ppt "Computer Science 2 Heaps."

Similar presentations


Ads by Google