Maximum element in min heap in C++



Problem statement

Given a minimum heap find maximum element in that.

Example

If input heap is −

Then maximum element is 55

Algorithm

  • In minimum heap parent node will be lesser than its children. Hence we can conclude that a non-leaf node cannot be the maximum.
  • Search maximum element in the leaf nodes

Example

Let us now see an example −

 Live Demo

#include <bits/stdc++.h> using namespace std; int getMaxElement(int *heap, int n) {    int maxVal = heap[n / 2];    for (int i = n / 2 + 1; i < n; ++i) {       maxVal = max(maxVal, heap[i]);    }    return maxVal; } int main() {    int heap[] = {15, 27, 22, 35, 29, 55, 48}; int n = sizeof(heap) / sizeof(heap[0]);    cout << "Maximum element = " << getMaxElement(heap, n) << endl;    return 0; }

Output

Maximum element = 55
Updated on: 2019-12-31T11:48:37+05:30

352 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements