Coding Interview Prep · درس

شجرة Kruskal الممتدة الدنيا

إضافة أرخص الحواف دون دورات

الدرس 3 من 413 خطوة

شجرة Kruskal الممتدة الدنيا درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.

ما هي شجرة الامتداد الدنيا

تصل شجرة الامتداد الدنيا كل رأس باستخدام أقل وزن إجمالي ممكن للحواف، من دون دورات. تخيّل توصيل بلدة بأقل تكلفة. 🌲

الفكرة الأساسية لخوارزمية Kruskal's

Kruskal's algorithm خوارزمية جشعة تمامًا: تستمر في إضافة أرخص حافة لا تنشئ دورة حتى تتصل كل أجزاء الرسم البياني.

الخطوة الأولى: ترتيب الحواف

رتّب أولًا كل حافة حسب الوزن، بدءًا من الأصغر. إن تفضيل الحواف الرخيصة بشكل جشع هو ما يجعل المجموع النهائي أدنى ما يمكن.

edges.sort()  # (weight, u, v)

لماذا تناسبها DSU تمامًا

لا تؤدي إضافة حافة إلى تكوين دورة إلا إذا كان طرفاها متصلين مسبقًا. تجيب DSU عن اختبار الاتصال هذا في وقت يقارب الثابت. 🤝

تفقّد الحواف المرتبة

مرّ على الحواف من الأرخص إلى الأغلى. ولكل حافة، تحقّق مما إذا كان طرفاها يشتركان مسبقًا في جذر واحد داخل DSU.

for w, u, v in edges:
    ru, rv = find(u), find(v)

القبول أو الرفض

إذا اختلف الجذران، فإن الحافة تصل بين جزأين منفصلين، لذا اقبلها وادمجهما. وإذا تطابق الجذران، فتجاوزها لتجنّب تكوين دورة.

if ru != rv:
    union(u, v)
    total += w

اعرف متى تتوقف

تحتوي شجرة امتداد تضم n من الرؤوس على n ناقص 1 حافة بالضبط. وبمجرد قبول هذا العدد، يمكنك التوقف مبكرًا.

اكتشاف عدم الاتصال

إذا انتهيت من جميع الحواف وقد قبلت أقل من n ناقص 1، فالرسم البياني غير متصل ولا توجد شجرة امتداد.

التكلفة الزمنية

يستحوذ الترتيب على معظم الوقت، لذا تعمل خوارزمية Kruskal's في O(E log E). أما عمليات DSU فهي رخيصة جدًا ولا تكاد تضيف شيئًا إلى هذا المجموع.

لماذا تكون الخوارزمية الجشعة صحيحة

تضمن خاصية القطع أن أخف حافة تعبر أي تقسيم تكون آمنة للإضافة، ولهذا لا يخطئ اختيار الحواف بدءًا من الأرخص.

متى تستخدم Kruskal

تتألق خوارزمية Kruskal's مع الرسوم البيانية قليلة الحواف المقدّمة على شكل قائمة حواف، وهو التنسيق الذي تمنحك إياه معظم مسائل المسابقات مباشرة. ⚡

اختبار سريع

حدّد ما الذي يخبر خوارزمية Kruskal's برفض حافة.

مراجعة

أنشأت Kruskal's MST: رتّبت الحواف، وأضفت الأرخص التي تصل بين مكوّنين عبر DSU، وتوقفت عند n ناقص 1 حافة. 🎉

البدء مجانًا

تعلم Coding Interview Prep مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
90
الدروس
360

الأسئلة الشائعة

هل درس «شجرة Kruskal الممتدة الدنيا» مجاني؟

نعم — نص درس «شجرة Kruskal الممتدة الدنيا» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.

ماذا ستتعلم في «شجرة Kruskal الممتدة الدنيا»؟

إضافة أرخص الحواف دون دورات تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟

لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «شجرة Kruskal الممتدة الدنيا»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟

نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏DSU مع ضغط المسار
  2. الضم حسب الرتبة والمكوّنات
  3. شجرة Kruskal الممتدة الدنيا
  4. ‏MST لخوارزمية Prim باستخدام كومة
← العودة إلى Coding Interview Prep