الدرس 9: الفرز والمفاتيح المخصصة
تخيّل رفًّا من الكتب بلا ترتيب، وتريد ترتيبها حسب الارتفاع. هذا هو 'الفرز' (sorting)، ولدى Python أداة جاهزة — sorted — تقوم بالعمل. استخدم key=... لاختيار ما تُفرز على أساسه، وreverse=True لعكس الترتيب. فرز Python 'مستقر' وتكلفته O(n log n). المهارة الحقيقية في المقابلة: التعرّف على متى يحوّل الفرز
الفرز مثل ترتيب مجموعة أوراق لعب حسب التسلسل. المفتاح (key) هو طريقة قول 'على أساس ماذا نرتّب' — حسب الرقم، أو حسب اللون، أو أولًا حسب اللون ثم حسب الرقم. وreverse=True يعني ببساطة 'رتّب من الأكبر إلى الأصغر'.
- الفرز
- ترتيب مجموعة وفق ترتيب محدّد. الفرز المبني على المقارنات يستغرق O(n log n) في الحالة العامة.
- مفتاح الفرز (key)
- دالة تُعيد لكل عنصر القيمة التي يُفرز على أساسها، مثلًا key=lambda x: x[1] يفرز حسب العنصر الثاني.
- الفرز المستقر
- فرز تحافظ فيه العناصر ذات المفتاح المتساوي على ترتيبها الأصلي. فرز Python مستقر.