Intermediate Topic 18 of 51 Algorithms
Heap Sort
Sorting by repeatedly extracting the maximum from a heap.
How it works
Heap sort first builds a max-heap from the array in O(n), then repeatedly swaps the root, the largest item, with the last element of the heap, shrinks the heap and sifts the new root down. It sorts in place with a guaranteed O(n log n) running time and O(1) extra memory, but is not stable and has poor cache locality.
Where it is used
Systems that need worst-case guarantees with minimal memory, such as embedded and real-time software, the fallback in introsort and finding the top k items use heap sort or its heap structure.
Common pitfall
In practice it is usually slower than a good quicksort because of scattered memory access. Instability makes it unsuitable for multi-key sorts. Off-by-one mistakes in the child index formulas and in the shrinking heap size are common. Use a library heap for partial sorting tasks.
Where it fits in the course
Heap Sort is topic 18 of 51 in Algorithms, rated Intermediate. It follows Sliding Window. The next topic is Shell Sort.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Algorithms quiz.
- Explore the Sorting Algorithms visualizer: Bubble, selection, insertion, merge and quick sort animated.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Algorithms quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Heap Sort?
Where do people use Heap Sort?
What is the most common mistake with Heap Sort?
What should I learn before this topic?
How can I practice it?
Is Heap Sort hard to learn?
How long does it take to learn Heap Sort?
Which topics are related to Heap Sort?
What should I study after Heap Sort?
Related topics
- Sliding Window (Algorithms)
- Shell Sort (Algorithms)
- Two Pointers (Algorithms)
- Bucket Sort (Algorithms)
- Stack vs Heap (Languages & Compilers)
- Binary Heap Operations (Data Structures)