DAA - วิธีการแยก
วิธีการแยกใช้เพื่อแยกองค์ประกอบรากของฮีป ต่อไปนี้เป็นอัลกอริทึม
Algorithm: Heap-Extract-Max (numbers[])
max = numbers[1]
numbers[1] = numbers[heapsize]
heapsize = heapsize – 1
Max-Heapify (numbers[], 1)
return max
ตัวอย่าง
ขอให้เราพิจารณาตัวอย่างเดียวกับที่กล่าวไว้ก่อนหน้านี้ ตอนนี้เราต้องการแยกองค์ประกอบ วิธีนี้จะคืนค่าองค์ประกอบรากของฮีป
![](https://post.nghiatu.com/assets/tutorial/design_and_analysis_of_algorithms/images/method.jpg)
หลังจากลบองค์ประกอบรากแล้วองค์ประกอบสุดท้ายจะถูกย้ายไปที่ตำแหน่งราก
![](https://post.nghiatu.com/assets/tutorial/design_and_analysis_of_algorithms/images/root_element.jpg)
ตอนนี้ฟังก์ชัน Heapify จะถูกเรียกใช้ หลังจาก Heapify ฮีปต่อไปนี้จะถูกสร้างขึ้น
![](https://post.nghiatu.com/assets/tutorial/design_and_analysis_of_algorithms/images/heapify.jpg)