Download presentation
Presentation is loading. Please wait.
Published byWidyawati Agusalim Modified over 6 years ago
1
Priority Queue and Binary Heap Neil Tang 02/12/2008
CS223 Advanced Data Structures and Algorithms
2
CS223 Advanced Data Structures and Algorithms
Class Overview Priority queue Binary heap Heap operations: insert, deleteMin, de/increaseKey, delete, buildHeap Application CS223 Advanced Data Structures and Algorithms
3
CS223 Advanced Data Structures and Algorithms
Priority Queue A priority queue is a queue in which each element has a priority and elements with higher priorities are supposed to be removed before the elements with lower priorities. CS223 Advanced Data Structures and Algorithms
4
CS223 Advanced Data Structures and Algorithms
Possible Solutions Linked list: Insert at the front (O(1)) and traverse the list to delete (O(N)). Linked list: Keep it always sorted. traverse the list to insert (O(N)) and delete the first element (O(1)). Binary search tree CS223 Advanced Data Structures and Algorithms
5
CS223 Advanced Data Structures and Algorithms
Binary Heap A binary heap is a binary tree that is completely filled, with possible exception of the bottom level and in which for every node X, the key in the parent of X is smaller than (or equal to) the key in X. CS223 Advanced Data Structures and Algorithms
6
CS223 Advanced Data Structures and Algorithms
Binary Heap A complete binary tree of height h has between 2h and 2h+1 -1 nodes. So h = logN. For any element in array position i, its left child in position 2i and the right child is in position (2i+1), and the parent is in i/2. CS223 Advanced Data Structures and Algorithms
7
CS223 Advanced Data Structures and Algorithms
Insert 14 CS223 Advanced Data Structures and Algorithms
8
CS223 Advanced Data Structures and Algorithms
Insert (Percolate Up) Time complexity: O(logN) CS223 Advanced Data Structures and Algorithms
9
CS223 Advanced Data Structures and Algorithms
deleteMin CS223 Advanced Data Structures and Algorithms
10
deleteMin (Percolate Down)
Time complexity: O(logN) CS223 Advanced Data Structures and Algorithms
11
CS223 Advanced Data Structures and Algorithms
Other Operations decreaseKey(p,) increaseKey(p, ) delete(p)? delete(p)=decreaseKey(p,)+deleteMin() CS223 Advanced Data Structures and Algorithms
12
CS223 Advanced Data Structures and Algorithms
buildHeap CS223 Advanced Data Structures and Algorithms
13
CS223 Advanced Data Structures and Algorithms
buildHeap CS223 Advanced Data Structures and Algorithms
14
CS223 Advanced Data Structures and Algorithms
buildHeap CS223 Advanced Data Structures and Algorithms
15
CS223 Advanced Data Structures and Algorithms
buildHeap Theorem: For the perfect binary tree of height 2h+1-1 nodes the sum of the heights of the nodes is 2h+1-1-(h+1). Time complexity: 2*(2h+1-1-(h+1)) = O(N). CS223 Advanced Data Structures and Algorithms
16
CS223 Advanced Data Structures and Algorithms
Applications Problem: find the kth smallest element. Algorithm: buildHeap, then deleteMin k times. Time complexity: O(N+klogN) = O(NlogN). CS223 Advanced Data Structures and Algorithms
17
CS223 Advanced Data Structures and Algorithms
Applications Problem: find the kth largest element. Algorithm: buildHeap with the first k elements, check the rest one by one. In each step, if the new element is larger, deleteMin and insert the new one. Time complexity: O(k+(N-k)logk) = O(NlogN). CS223 Advanced Data Structures and Algorithms
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.