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

คุณสมบัติที่ปรับเปลี่ยนได้ของการจับคู่ฮีป


การจับคู่ฮีปถูกนำมาใช้เพื่อการใช้งานคิวลำดับความสำคัญที่สมบูรณ์แบบ คิวลำดับความสำคัญจะรักษาการติดตามของชุดออบเจ็กต์ขั้นต่ำ ดังนั้นทุกครั้งที่เรานำบางสิ่งที่กำจัดออกจากคิว จะเป็นค่าต่ำสุดเสมอ คิวลำดับความสำคัญส่วนใหญ่จะนำมาใช้เมื่อใช้อัลกอริทึมของ Dijkstra เพื่อคำนวณเส้นทางที่สั้นที่สุดในกราฟ

การจับคู่ฮีปนั้นสมบูรณ์แบบเพราะใช้งานง่ายและทำงานได้ดีในการใช้งานจริง โดยเฉพาะอย่างยิ่ง พวกเขาทำงานได้ดีในเวลาตัดจำหน่าย หมายความว่าในขณะที่การดำเนินการแต่ละรายการใช้เวลานานกว่า ผลรวมของการดำเนินการทั้งหมดตลอดวงจรชีวิตทั้งหมดของคิวนั้นรวดเร็ว การจับคู่ฮีปนั้นเขียนโค้ดได้ง่ายกว่าและมักจะทำงานได้ดีกว่าฮีป Fibonacci

การจับคู่ฮีปมีคุณสมบัติที่ง่ายมาก แต่ละฮีปเชื่อมโยงกับอ็อบเจ็กต์หรือค่า แต่ละฮีปยังติดตั้งชุดฮีปย่อยด้วย ค่าของอ็อบเจ็กต์จะมากกว่า (หรือน้อยกว่า) ของฮีปย่อยเสมอ

ฮีปมีการทำงานพื้นฐานบางอย่าง -

นาที(ฮีป) - รับค่าต่ำสุด ฟังก์ชั่นนี้ง่ายมาก ดูเหมือนค่าสูงสุดของฮีป

ผสาน (heap1, heap2) – ผสานหรือรวมสองฮีป เพิ่มฮีปที่มีค่าสูงสุดให้กับชายน์ของฮีปอื่น ฟังก์ชันนี้ยังเร็วอีกด้วย