Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

องค์ประกอบสูงสุดในฮีปขั้นต่ำใน C++


คำชี้แจงปัญหา

กำหนดฮีปขั้นต่ำให้หาองค์ประกอบสูงสุดในนั้น

ตัวอย่าง

หากฮีปอินพุตเป็น −

องค์ประกอบสูงสุดในฮีปขั้นต่ำใน C++

องค์ประกอบสูงสุดคือ 55

อัลกอริทึม

  • ในโหนดพาเรนต์ฮีปขั้นต่ำจะน้อยกว่าโหนดย่อย ดังนั้นเราจึงสรุปได้ว่าโหนดที่ไม่ใช่ใบไม่สามารถเป็นจำนวนสูงสุดได้
  • ค้นหาองค์ประกอบสูงสุดในโหนดปลายสุด

ตัวอย่าง

เรามาดูตัวอย่างกัน −

#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;
}

ผลลัพธ์

Maximum element = 55