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 every node node node must be less than all of its children. 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 every node node must be greater than at all of its children. In a Max-Heap the maximum key element present at the root. Below is the Binary Tree that satisfies all the property of Max 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 all of its descendants and same thing must be true for all subtrees, | In a Max-Heap the key present at the root node must be more than all of its descendants and same thing must be true for all subtrees, |
| 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 (in max heap) or Minimum (in min heap) : O(log N)