✂️ اقطعها نصفين: البحث الثنائي
لماذا: البحث الثنائي: جِد أي شيء في قائمة مرتبة بالتنصيف — مليار عنصر في نحو 30 خطوة.
يفتح لك: الترتيب — كيف تكسب القوائم حق البحث فيها بهذه السرعة.
سبق أن لعبت هذه الخوارزمية: قارئ الأفكار خمّن رقمك بين 1 و100 في 7 أسئلة، يسأل «أكبر من 50؟» ويرمي نصف العالم مع كل إجابة. لهذه الاستراتيجية اسم — البحث الثنائي — وشرط واحد: أن تكون القائمة مرتبة. دليل الهاتف ينجح لأن الأسماء أبجدية؛ افتح المنتصف فتعرف فوراً أي نصف تُبقي.
لماذا 7؟ لأن 100 تتنصّف إلى 50 ← 25 ← 13 ← 7 ← 4 ← 2 ← 1. كل سؤال يقتل نصف المشتبه بهم. والآن استمتع بعبثية بطء هذا النمو:
| حجم القائمة | البحث الخطي | البحث الثنائي |
|---|---|---|
| 100 | 100 فحص | 7 فحوص |
| 1,000,000 | 1,000,000 فحص | 20 فحصاً |
| 1,000,000,000 | 1,000,000,000 فحص | 30 فحصاً |
| كل البشر على الأرض | 8,000,000,000 فحص | 33 فحصاً |
تضاعفت قائمة مرتبة من مليار إلى ملياري مدخل. أسوأ حالات البحث الثنائي تنتقل من 30 إلى…
لماذا لا يصلح البحث الثنائي في قائمة غير مرتبة؟
🔍 تعمّق أكثر: أعد تشغيل هذه الوصفة بالحركة البطيئة في مشروع قارئ الأفكار، أو تتبّع القوائم من الداخل في PyDebug: القوائم.