อัลกอริทึมของ Prims ใช้สำหรับอะไร?
อัลกอริทึมของ Prims ใช้สำหรับอะไร?

วีดีโอ: อัลกอริทึมของ Prims ใช้สำหรับอะไร?

วีดีโอ: อัลกอริทึมของ Prims ใช้สำหรับอะไร?
วีดีโอ: วิธีการหา Minimum spanning tree ฉบับเข้าใจง่ายมากๆ ใน 7 นาที 2024, ธันวาคม
Anonim

ในวิทยาการคอมพิวเตอร์ Prim's (เรียกอีกอย่างว่าจาร์นิค) อัลกอริทึม เป็นคนโลภ อัลกอริทึม ที่ค้นหาแผนภูมิขยายขั้นต่ำสำหรับกราฟที่ไม่มีทิศทางแบบถ่วงน้ำหนัก ซึ่งหมายความว่าจะพบส่วนย่อยของขอบที่สร้างต้นไม้ที่รวมทุกจุดยอด โดยที่น้ำหนักรวมของขอบทั้งหมดในต้นไม้จะลดลง

นอกจากนี้ อัลกอริทึมของ Kruskal ใช้ทำอะไร

อัลกอริทึมของ Kruskal ใช้ แนวทางโลภหาต้นไม้ที่ทอดข้ามขั้นต่ำ อัลกอริทึมของ Kruskal ถือว่าโหนดทุกโหนดเป็นทรีอิสระและเชื่อมต่อโหนดอื่นเฉพาะในกรณีที่มีต้นทุนต่ำที่สุดเมื่อเทียบกับตัวเลือกอื่นๆ ทั้งหมดที่มี

ประการที่สอง อัลกอริธึมของ Dijkstra ทำอะไร? อัลกอริทึมของ Dijkstra สามารถใช้เพื่อกำหนดเส้นทางที่สั้นที่สุดจากโหนดหนึ่งในกราฟไปยังโหนดอื่น ๆ ภายในโครงสร้างข้อมูลกราฟเดียวกัน โดยมีเงื่อนไขว่าโหนดสามารถเข้าถึงได้จากโหนดเริ่มต้น อัลกอริทึมของ Dijkstra สามารถใช้เพื่อค้นหาเส้นทางที่สั้นที่สุด

ประการที่สอง อัลกอริธึม Prims และ Kruskal ไหนดีกว่ากัน

อัลกอริทึมของ Kruskal : ดำเนินการ ดีกว่า สถานการณ์ที่ไม่ปกติ (กราฟกระจัดกระจาย) เนื่องจากใช้โครงสร้างข้อมูลที่ง่ายกว่า อัลกอริทึมของ Prim : เร็วขึ้นอย่างมากในขีดจำกัดเมื่อคุณมีกราฟที่หนาแน่นมากซึ่งมีขอบมากกว่าจุดยอดหลายจุด

ความซับซ้อนของเวลาของอัลกอริธึม Prims คืออะไร?

ดังนั้นจึงใช้อาร์เรย์จำนวนเต็มเดียวเพื่อกำหนดกราฟย่อยของกราฟ NS ความซับซ้อนของเวลา คือ O(VlogV +ElogV) = O(ElogV) ทำให้เหมือนกับ อัลกอริทึมของ Kruskal . อย่างไรก็ตาม, อัลกอริทึมของ Prim สามารถปรับปรุงได้โดยใช้ Fibonacci Heaps (cf Cormen) ถึง O(E + logV)

แนะนำ: