Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

How it works?

الدرس 3 من 9 في دورة Heap Sort - سلسلة DSA على Coddy.

توجد الكومة الثنائية (binary heap) داخل مصفوفة عادية. بالنسبة للعقدة الموجودة في الفهرس i (الذي يبدأ من 0)، يكون أبناؤها في الفهرسين 2*i + 1 و 2*i + 2. هذا الفهرسة هي الحيلة الكاملة التي تسمح للشجرة بالبقاء داخل مصفوفة.

العملية خطوة بخطوة:

  1. بناء كومة قصوى (max-heap): إعادة ترتيب المصفوفة بحيث يكون كل أب >= أبنائه. تنتهي القيمة الأكبر في الفهرس 0.
  2. استخراج القيمة القصوى: تبديل الجذر (الأكبر) مع العنصر الأخير في الكومة، ثم تقليص حجم الكومة بمقدار واحد بحيث يتم وضع القيمة الأكبر في النهاية في موضعها النهائي المرتب.
  3. الإصلاح باستخدام الغربلة للأسفل (sift-down): قد يكون الجذر الجديد في غير مكانه، لذا قم بـ غربلته للأسفل (تبديله مع ابنه الأكبر، وتكرار ذلك) حتى تتحقق خاصية الكومة مرة أخرى.
  4. التكرار حتى تصبح الكومة فارغة. تصبح المصفوفة الآن مرتبة تصاعدياً.

مثال على [4, 10, 3, 5, 1]:

  • بناء كومة قصوى: [10, 5, 3, 4, 1].
  • تبديل الجذر 10 إلى النهاية والغربلة للأسفل، ثم التكرار للقيم 5، 4، 3.
  • النتيجة: [1, 3, 4, 5, 10].

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Heap Sort - سلسلة DSA