
Heaps and Priority Queues
Students will learn to create and use simple functions to group related instructions, making programs more organized and easier to manage.
About This Topic
Students will learn to create and use simple functions to group related instructions, making programs more organized and easier to manage.
Key Questions
- Prove that the build-heap procedure runs in O(n) time rather than O(n log n) using an amortised argument over the levels of the heap.
- Trace the sift-up and sift-down operations on a max-heap during insertion and extract-max, and derive the O(log n) complexity of each operation.
- Design an application requiring a priority queue,such as a task scheduler or Dijkstra's algorithm,and justify why a binary heap is the appropriate underlying structure compared to a sorted list.
Active Learning Ideas
See all activities→Activities & Teaching Strategies
See all activities
More in Abstract Data Structures and Algorithms
Introduction to Computational Thinking
Students will be introduced to the core concepts of computational thinking: decomposition, pattern recognition, abstraction, and algorithms, as problem-solving tools.
8 methodologies
Linked Lists: Implementation and Complexity Analysis
Students will learn basic ways to organize data using simple lists and tables, understanding how this helps in managing information.
8 methodologies
Stacks and Queues: Implementations and Applications
Students will identify and create simple step-by-step instructions (algorithms) for everyday tasks, understanding the importance of order and precision.
8 methodologies
Binary Trees and Binary Search Trees
Students will explore how 'if-then-else' statements allow programs to make decisions and respond to different conditions.
8 methodologies
AVL Trees and Height-Balanced Structures
Students will learn about loops (e.g., 'repeat' or 'for' loops) to perform actions multiple times, making programs more efficient.
8 methodologies
Hash Tables and Collision Resolution Strategies
Students will understand how variables are used to store and retrieve different types of data (numbers, text) in a program.
8 methodologies