DAA - วิธีการแยก

วิธีการแยกใช้เพื่อแยกองค์ประกอบรากของฮีป ต่อไปนี้เป็นอัลกอริทึม

Algorithm: Heap-Extract-Max (numbers[]) 
max = numbers[1] 
numbers[1] = numbers[heapsize] 
heapsize = heapsize – 1 
Max-Heapify (numbers[], 1) 
return max

ตัวอย่าง

ขอให้เราพิจารณาตัวอย่างเดียวกับที่กล่าวไว้ก่อนหน้านี้ ตอนนี้เราต้องการแยกองค์ประกอบ วิธีนี้จะคืนค่าองค์ประกอบรากของฮีป

หลังจากลบองค์ประกอบรากแล้วองค์ประกอบสุดท้ายจะถูกย้ายไปที่ตำแหน่งราก

ตอนนี้ฟังก์ชัน Heapify จะถูกเรียกใช้ หลังจาก Heapify ฮีปต่อไปนี้จะถูกสร้างขึ้น