A Heap is a special Tree-based data structure in which the tree is a complete binary tree. Since a heap is a complete binary tree, a heap with N nodes has log N height. It is useful to remove the highest or lowest priority element. It is typically represented as an array. There are two types of Heaps in the data structure.
Min-Heap
In a Min-Heap the key present at the root node must be less than or equal among the keys present at all of its children. The same property must be recursively true for all sub-trees in that Binary Tree. In a Min-Heap the minimum key element present at the root. Below is the Binary Tree that satisfies all the property of Min Heap.
Max Heap
In a Max-Heap the key present at the root node must be greater than or equal among the keys present at all of its children. The same property must be recursively true for all sub-trees in that Binary Tree. In a Max-Heap the maximum key element present at the root. Below is the Binary Tree that satisfies all the property of Min Heap.
Difference between Min Heap and Max Heap
Min Heap | Max Heap | |
---|---|---|
1. | In a Min-Heap the key present at the root node must be less than or equal to among the keys present at all of its children. | In a Max-Heap the key present at the root node must be greater than or equal to among the keys present at all of its children. |
2. | In a Min-Heap the minimum key element present at the root. | In a Max-Heap the maximum key element present at the root. |
3. | A Min-Heap uses the ascending priority. | A Max-Heap uses the descending priority. |
4. | In the construction of a Min-Heap, the smallest element has priority. | In the construction of a Max-Heap, the largest element has priority. |
5. | In a Min-Heap, the smallest element is the first to be popped from the heap. | In a Max-Heap, the largest element is the first to be popped from the heap. |
Applications of Heaps:
- Heap Sort: Heap Sort is one of the best sorting algorithms that use Binary Heap to sort an array in O(N*log N) time.
- Priority Queue: A priority queue can be implemented by using a heap because it supports insert(), delete(), extractMax(), decreaseKey() operations in O(log N) time.
- Graph Algorithms: The heaps are especially used in Graph Algorithms like Dijkstra’s Shortest Path and Prim’s Minimum Spanning Tree.
Performance Analysis of Min-Heap and Max-Heap:
- Get Maximum or Minimum Element: O(1)
- Insert Element into Max-Heap or Min-Heap: O(log N)
- Remove Maximum or Minimum Element: O(log N)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.