How it works?
الدرس 3 من 9 في دورة Heap Sort - سلسلة DSA على Coddy.
توجد الكومة الثنائية (binary heap) داخل مصفوفة عادية. بالنسبة للعقدة الموجودة في الفهرس i (الذي يبدأ من 0)، يكون أبناؤها في الفهرسين 2*i + 1 و 2*i + 2. هذا الفهرسة هي الحيلة الكاملة التي تسمح للشجرة بالبقاء داخل مصفوفة.
العملية خطوة بخطوة:
- بناء كومة قصوى (max-heap): إعادة ترتيب المصفوفة بحيث يكون كل أب >= أبنائه. تنتهي القيمة الأكبر في الفهرس 0.
- استخراج القيمة القصوى: تبديل الجذر (الأكبر) مع العنصر الأخير في الكومة، ثم تقليص حجم الكومة بمقدار واحد بحيث يتم وضع القيمة الأكبر في النهاية في موضعها النهائي المرتب.
- الإصلاح باستخدام الغربلة للأسفل (sift-down): قد يكون الجذر الجديد في غير مكانه، لذا قم بـ غربلته للأسفل (تبديله مع ابنه الأكبر، وتكرار ذلك) حتى تتحقق خاصية الكومة مرة أخرى.
- التكرار حتى تصبح الكومة فارغة. تصبح المصفوفة الآن مرتبة تصاعدياً.
مثال على [4, 10, 3, 5, 1]:
- بناء كومة قصوى: [10, 5, 3, 4, 1].
- تبديل الجذر 10 إلى النهاية والغربلة للأسفل، ثم التكرار للقيم 5، 4، 3.
- النتيجة: [1, 3, 4, 5, 10].
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Heap Sort - سلسلة DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)