Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Min-Max Heaps (มิน-แม็กซ์ฮีป) ในโครงสร้างข้อมูล

Min-Max Heap Definition

Min-Max Heap = Complete Binary Tree ที่มี Levels สลับกันระหว่าง Min (Even) และ Max (Odd)

  • Even Levels: 0, 2, 4, ... = Min Levels
  • Odd Levels: 1, 3, 5, ... = Max Levels
  • Root = Level 0 (Min Level)

Min-Max Heaps (มิน-แม็กซ์ฮีป) ในโครงสร้างข้อมูล

Properties

  1. Node แต่ละตัวมี Key ใช้สำหรับ Ordering
  2. Root = Minimum Element ของทั้ง Heap
  3. Level 1 (Max Level) มี 2 Elements → หนึ่งในสองเป็น Maximum Element
  4. Node y บน Min Level: y.key = Smallest Key ใน Subtree Rooted at y
  5. Node y บน Max Level: y.key = Largest Key ใน Subtree Rooted at y
  6. Min Level Nodes = Min Nodes, Max Level Nodes = Max Nodes

Max-Min Heap (Variant)

Opposite ของ Min-Max Heap: Root = Maximum, Root's Child = Minimum

Operations Complexity

Operation Time Complexity
Find Min / Find Max O(1)
Insert O(log n)
Delete Min / Delete Max O(log n)
Build Heap O(n)

สรุป

Min-Max Heap = Double-Ended Priority Queue Implementation ที่ Simple และ Space-Efficient
Single Array, Implicit Structure (No Pointers)
Alternating Min/Max Levels → Efficient Min และ Max Operations พร้อมกัน