Download presentation
Presentation is loading. Please wait.
Published byEthelbert Warren Modified over 9 years ago
1
CS106X – Programming Abstractions in C++ Cynthia Bailey Lee CS2 in C++ Peer Instruction Materials by Cynthia Bailey Lee is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 4.0 International License. Permissions beyond the scope of this license may be available at http://peerinstruction4cs.org.Cynthia Bailey LeeCreative Commons Attribution-NonCommercial- ShareAlike 4.0 International Licensehttp://peerinstruction4cs.org
2
Today’s Topics: Heaps! 1. Binary heaps Insert, delete Reasoning about outcomes in Binary heaps, and Big O analysis 2. Heapsort algorithm 3. (Schedule note: we’ll save stack and queue implementation for another day…) 2
3
Binary heap insert and delete
4
Binary heap insert + “bubble up”
5
Binary heap insert
6
Binary heap delete + “trickle-down”
8
Heap outcomes by insert order Create a MIN heap by inserting the elements, one by one, in the order given below for the second letter of your first name: A-F: {3, 9, 18, 22, 34} G-L: {3, 22, 18, 9, 34} M-R: {9, 22, 18, 3, 34} S-Z: {18, 22, 3, 9, 34}
9
TRUE OR FALSE There is only one configuration of a valid min-heap containing the elements {34, 22, 3, 9, 18} A. TRUE B. FALSE
10
Heap outcomes by insert order Create a MIN heap by inserting the elements, one by one, in the order given below for the first letter of your last name: A-F: {18, 9, 34, 3, 22} G-L: {3, 18, 22, 9, 34} M-R: {22, 9, 34, 3, 18} S-Z: {34, 3, 9, 18, 22}
11
How many distinct min-heaps are possible for the elements {3, 9, 18, 22, 34}? A. 1-2 B. 3-4 C. 5-8 D. 5! (5 factorial) E. Other/none/more
12
Time cost What is the worst-case time cost for each heap operation: Add, Remove, Peek? A. O(n), O(1), O(1) B. O(logn), O(logn), O(1) C. O(logn), O(1), O(logn) D. O(n), O(logn), O(logn) E. Other/none/more
13
Heapsort
14
Heapsort is super easy 1. Insert unsorted elements one at a time into a heap until all are added 2. Remove them from the heap one at a time (we will always be removing the next biggest item, for max-heap; or next smallest item, for min-heap) THAT’S IT!
15
Implementing heapsort Devil’s in the details
16
Build max- heap by inserting elements one at a time:
17
What is the next configuration in this sequence? A.12, 8, 2, 10 B.12, 10, 2, 8 C.12, 10, 8, 2 D.Other/none/more than one
18
Build max-heap by inserting elements one at a time:
19
Sort array by removing elements one at a time:
20
Build heap by inserting elements one at a time IN PLACE:
21
Sort array by removing elements one at a time IN PLACE:
22
Complexity How many times do we do insert() when building the heap? How much does each cost? How many times do we delete-max() when doing the final sort? How much does each cost?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.