How it works?
الدرس 3 من 9 في دورة خوارزمية كروسكال - خوارزميات الرسوم البيانية على Coddy.
تحتفظ بنية Union-find بمصفوفة parent. تبدأ كل رأس كجذر لنفسها. هناك عمليتان تقودان كل شيء:
- find(x): تتبع روابط
parentحتى تصل إلى الجذر (الرأس الذي يكون هو نفسه أباً لنفسه). يتم توصيل رأسين عندما يتشاركان في نفس الجذر. - union(a, b): توجيه أحد الجذور إلى الآخر، مما يؤدي إلى دمج المجموعتين.
خوارزمية كروسكال (Kruskal's Algorithm):
- معالجة الحواف من الوزن الأصغر إلى الأكبر.
- لكل حافة، قم بإجراء
findلجذور نقاط نهايتها. إذا كانت الجذور مختلفة، فإن الحافة تربط بين قطعتين منفصلتين: قم بإجراءunionلهما وأضف وزنها إلى المجموع الكلي. - إذا كانت الجذور متماثلة، فإن الحافة ستشكل دورة (cycle)، لذا تخطاها.
بعد معالجة كل حافة، تشكل الحواف المختارة شجرة الامتداد الدنيا MST (بالنسبة للرسم البياني المتصل، بالضبط n - 1 منها).
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس خوارزمية كروسكال - خوارزميات الرسوم البيانية
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)