الرجوع للمكتبةالخوارزميات · 5 دقائق قراءة

كيف تتبع البحث الثنائي خطوة بخطوة؟

اعرف ليش يشترط الترتيب وكيف تستبعد نصف العناصر كل مرة.

الفكرة ببساطة

في قائمة مرتبة تصاعديا، قارن العنصر المطلوب بعنصر المنتصف. لو الهدف أكبر، استبعد المنتصف والجزء اللي قبله.

لو الهدف أصغر، استبعد المنتصف والجزء اللي بعده. تكرر لين تلاقيه أو تصير حدود البحث بدون عناصر.

مثال محلول

نبحث عن 15 في القائمة المرتبة [2, 5, 8, 12, 15, 21, 30].

range 0..6 → mid 3 → value 12
range 4..6 → mid 5 → value 21
range 4..4 → mid 4 → value 15

وصلنا للعنصر في الفهرس 4. في كل خطوة نحذف نصف مجال البحث تقريبا.

انتبه لهالنقطة

إذا كان المنتصف مختلفا عن الهدف، لا تدخله في المجال التالي. تركه ممكن يخلي الحدود تتكرر.

جرّب بنفسك

لو الهدف 13 في القائمة نفسها، وش يصير بعد مقارنة القيمة 15 في الفهرس 4؟

اعرض الإجابة

ننزل الحد الأعلى إلى 3. الحد الأدنى 4، فالمجال صار فارغا ونرجع أن العنصر غير موجود.

أكمل القراءة

الخوارزميات5 دقائق قراءة

متى تكون الحلقتان O(n²)؟

احسب عدد مرات تنفيذ السطر الداخلي قبل ما تختار التعقيد.

اقرأ الدرس
هياكل البيانات4 دقائق قراءة

متى تستخدم الطابور ومتى تستخدم المكدس؟

تتبع ترتيب خروج العناصر من Queue وStack على مثال طلبات دعم.

اقرأ الدرس