البحث الثنائي هو & mdash؛ تقدير درجة تعقيدها هو O (log2 (n)) ، بينما البحث المتسلسل التقليدي يحتوي على O (n) . هذا يعني أنه ، على سبيل المثال ، بالنسبة لمصفوفة من 1024 عنصرًا ، فإن البحث الخطي ، في أسوأ الحالات ، عندما لا يكون العنصر المطلوب في المصفوفة ، سيعالج جميع العناصر البالغ عددها 1024. البحث الثنائي كافٍ لمعالجة عناصر \ (log_2 (1024) = 10 \) . يتم تحقيق هذه النتيجة بسبب حقيقة أنه بعد الخطوة الأولى من الحلقة ، تضيق منطقة البحث إلى 512 عنصرًا ، بعد الثانية & ndash ؛ حتى 256 إلخ. p>
تتمثل عيوب هذه الخوارزمية في الحاجة إلى ترتيب البيانات ، فضلاً عن القدرة على الوصول إلى أي عنصر بيانات في وقت ثابت (بغض النظر عن كمية البيانات). وبالتالي ، لا يمكن للخوارزمية أن تعمل على المصفوفات غير المرتبة وأي هياكل بيانات تعتمد على القوائم المرتبطة.
التنفيذ h5>
وداعًا strong> (يمين & ndash؛ يسار & gt؛ 1 ) // طالما أن الحد الأيمن على يمين اليسار em>
nc
الأوسط = (يسار + يمين) / < / span> 2 ؛ // وسط منطقة البحث em>
if (A [middle] & gt؛ = ب) ثم strong>
يمين = mid؛ // تحريك الحد الأيمن em>
بخلاف ذلك strong>
يسار = mid؛ // وبخلاف ذلك انقل الحد الأيسر em>
سم مكعب strong>
if (A [right] == X) ثم strong>
الإخراج الصحيح
بخلاف ذلك strong>
الإخراج - 1 ؛
حيث:
A - مصفوفة المصدر ،
N - حجم المصفوفة ،
X - الرقم المطلوب.
نبسب ؛
|