Open In App

Max Heap meaning in DSA

Last Updated : 17 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

A max heap is a complete binary tree in which every parent node has a value greater than or equal to its children nodes.

Example of Max Heap

Example of Max Heap

Properties of a Max Heap :

  • A max heap is a complete binary tree, meaning that all levels of the tree are completely filled, except possibly the last level which is filled from left to right.
  • In a max heap, every parent node has a value greater than or equal to its children nodes. That is, the value of the node at index i is greater than or equal to the values of its children nodes at indices 2*i+1 and 2*i+2.
  • In a max heap, insertion and deletion operations take O(log n) time complexity where n is the number of elements in the heap.

Applications of Max Heap:

A max heap is a data structure that has a variety of applications in computer science, including:

  • Priority queues: A priority queue is a data structure that allows for quick access to the highest-priority element. Max heaps can be used to implement priority queues efficiently, with insertion and deletion operations taking O(log n) time complexity.
  • Heap sort: Heap sort is an efficient sorting algorithm that uses a max heap to sort an array of elements in ascending order. 
  • Job scheduling: Max heaps can be used in job scheduling algorithms (especially priority based) to determine the order in which tasks should be executed.

Advantages of Max Heap:

  • Efficient insertion: Inserting an element into a max heap is efficient, as the element is always inserted at the last available leaf node and then percolated up the tree to maintain the heap property.
  • Efficient deletion: Deleting the maximum element from a max heap is also efficient, as the element is always located at the root node. After deletion, the last leaf node in the heap is moved to the root position and then percolated down the tree to maintain the heap property.
  • Priority Queue implementation: A max heap can be used to implement a priority queue efficiently. The highest priority item is always at the top of the heap and can be accessed and removed efficiently.

Disadvantages of Max Heap :

  • Slow search for non-maximum elements: A max heap does not provide an efficient way to search for elements that are not the maximum. Searching for an element in a max heap has a worst-case time complexity of O(n), which is slow.
  • Inefficient use of memory: A max heap uses an array to store its elements, which can lead to inefficient use of memory. If the heap is only partially filled, a significant amount of memory may be wasted.
  • Unstable sorting: If two elements in a max heap have the same value, their relative order may be changed during a sort. This can be a problem in certain applications where stability of sorting is important.

What else can you read?


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads