If you do not find what you're looking for, you can use more accurate words.
في علم الحاسوب، خوارزمية البحث الثنائي (بالإنجليزية: Binary search algorithm)، المعروفة أيضًا باسم البحث المحدد بفاصل المنتصف، أو البحث اللوغاريتمي، أو القطع الثنائي،(1) هي خوارزمية بحث تجد موضع القيمة المستهدفة داخل مصفوفة مرتبة. يقارن البحث الثنائي القيمة المستهدفة بالعنصر المتوسط من المصفوفة. إذا لم تكن متساوية، يتم التخلص من النصف الذي لا يمكن للهدف أن يكون فيه ويستمر البحث في النصف المتبقي؛ تتكرر العملية مرة أخرى مع أخذ العنصر المتوسط للمقارنة بالقيمة المستهدفة، حتى العثور على القيمة المستهدفة. إذا كانت نتيجة البحث أن النصف المتبقي فارغ من العناصر، فهذا يعني أن القيمة المُستهدفة غير موجودة في المصفوفة.
في أسوأ حالة يعمل البحث الثنائي في وقت لوغاريتمي، مُنجِزاً مقارنة، حيث هو عدد العناصر في المصفوفة، و هو تمثيل O الكبرى، و هو اللوغاريتم. البحث الثنائي أسرع من البحث الخطي من خلال المصفوفات الصغيرة. مع ذلك، يجب ترتيب المصفوفة أولاً حتى تتمكن من تطبيق البحث الثنائي. هناك هياكل بيانات متخصصة مصممة للبحث السريع، مثل جداول التجزئة، والتي يمكن البحث عنها بكفاءة أكبر من البحث الثنائي. ومع ذلك، يمكن استخدام البحث الثنائي لحل مجموعة أكبر من المشاكل، مثل العثور على العنصر التالي الأصغر أو التالي الأكبر في المصفوفة بالنسبة للهدف حتى إذا لم يكن موجوداً في المصفوفة.
ثمة تطبيقات منوّعة للبحث الثنائي؛ على وجه الخصوص، يسرّع التتالي الجزئي عمليات البحث الثنائية عن قيمة واحدة في مصفوفات متعددة. وهو قادر على حل عدد من مشكلات البحث في الهندسة الحسابية وفي العديد من المجالات الأخرى بكفاءة عالية. يوسع البحثُ الأسّي البحثَ الثنائي ليشمل القوائم غير المحدودة، وتعتمد بنى بيانات شجرة البحث الثنائية والشجرة الثنائية على البحث الثنائي أيضاً.
يعمل البحث الثنائي على المصفوفات المرتبة بهدف إيجاد موقع قيمة ما تُسمَّى القيمة المُستهدَفة أو القيمة الهدف. تبدأ العملية بمقارنة قيمة العنصر الموجود في منتصف المصفوفة بالقيمة المُستهدَفة، فإذا كانت هذه القيمة مُطابِقة لقيمة لعنصر، تُرجَع مرتبة العنصر في المصفوفة، وينتهي البحث. أَمَّا إذا كانت القيمة المُستهدَفة أقل من قيمة العنصر، فإن البحث سيستمر في النصف السفلي من المصفوفة. وأَمَّا إذا كانت القيمة المُستهدَفة أَصغر من قيمة العنصر، فإن البحث سيستمر في النصف العلوي من المصفوفة. يُحدد العنصر الموجود في منتصف نصف المصفوفة، وتعاد العملية السابقة حتى الوصول إلى القيمة المُستهدَفة أو انتهاء البحث دونَ ذلك، ويُقال عندها أن البحث غير ناجح أو أنه فَشِل في إيجاد القيمة المستهدفة في المصفوفة. في كل تكرار، تستبعد الخوارزمية النصف الذي لا يمكن أن توجد فيه القيمة المُستهدَفة.
إذا كانت مصفوفةً تحتوي على عنصر أو سجل هي: مرتبة بالشكل التالي: ، وإذا كانت القيمة المُستهدَفة هي ، فبالإمكان العثور على مرتبة القيمة المُستهدَفة في المصفوفة ، أي إنجاز بحثٍ ثُنائيّ، باستخدم الخوارزمية التالية:
1. هذه الأسماء هي: (بالإنجليزية: Half-interval search, logarithmic search, and binary chop) على الترتيب.
2. المتحوِّلان هما الحرفان الأولان من كلمتي يسار (بالإنجليزية: Left) ويمين (بالإنجليزية: Right) على الترتيب.
3. يمكن تمثيل أي خوارزمية بحث تستند إلى المقارنات فقط باستخدام شجرة مقارنة ثنائية. المسار الداخلي هو أي مسار من الجذر إلى العقدة المدروسة. ليكن طول المسار الداخلي، أي مجموع أطوال جميع المسارات الداخلية. إذا كان من احتمال البحث عن كل العناصر متساوياً، فإن طول المسار الوسطي سي