الكومة الصغرى تضع الأصغر في h[0]. [1]
الخلاصة السريعة
اختبر الأب وأبناءه، واستخرج بواسطة heappop للحصول على ترتيب تصاعدي. [1]
- الأب لا يزيد على أبنائه الموجودين؛ الفهارس تبدأ بالصفر. [1]
- [1,3,2,7,4,5] كومة صحيحة؛ لكن 3 تسبق 2. [1]
- heapify يبني الكومة في القائمة نفسها؛ لا يفرزها. [1]
- استخرج من نسخة؛ heappop يحذف الأصغر، وpop() العادي يحذف الأخير. [1] [2]
- أعداد صحيحة؛ نتوقف عند فراغ النسخة؛ heappop الفارغ يرفع IndexError؛ دون قياس سرعة. [1] [2]
افحص علاقة الأب بالابن
للأب عند k، الابنان عند 2*k+1 و2*k+2 إذا وُجدا. [1]
الرسم يحقق الشرط؛ لا يلزم ترتيب الأخوين 3 و2. [1]
استخرج من نسخة
نسخنا القائمة لحفظ الأصل؛ نضيف كل قيمة مستخرجة إلى الناتج. [2]

import heapq
h = [1, 3, 2, 7, 4, 5]
heapq.heapify(h)
work = h.copy()
result = []
while work:
result.append(heapq.heappop(work))الناتج [1,2,3,4,5,7]؛ النسخة فارغة والأصل باقٍ. [1] [2]
فرق الحذف
على نسخة من كومتنا، pop() يعطي 5؛ heappop يعطي 1 ويحافظ على شرط الكومة. [1] [2]
heappop على الفارغ يرفع IndexError؛ شرط الحلقة يمنع ذلك هنا. [1]
المراجع
- Python: الكومة الصغرى
- Python: طرق القائمة
- موضوع تك: تطبيقات بايثون — مفردات
- موضوع تك: لغة بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
