الفرق بين البحث الخطي والبحث الثنائي هو أن البحث الخطي يفحص العناصر واحدًا تلو الآخر حتى يجد الهدف، بينما البحث الثنائي يقسم البيانات إلى نصفين بشكل متكرر للوصول إلى العنصر بسرعة أكبر، بشرط أن تكون البيانات مرتبة.
ما هو البحث الخطي؟
البحث الخطي (Linear Search) هو أبسط خوارزمية بحث، حيث يتم المرور على كل عنصر في القائمة بشكل تسلسلي حتى يتم العثور على العنصر المطلوب أو الوصول إلى نهاية القائمة.
كيف يعمل؟
- يبدأ من أول عنصر
- يقارن كل عنصر بالقيمة المطلوبة
- يتوقف عند العثور عليها أو انتهاء القائمة
مميزاته:
- سهل الفهم والتنفيذ
- لا يحتاج إلى ترتيب البيانات
عيوبه:
- بطيء مع البيانات الكبيرة
- زمن التنفيذ يزداد كلما زاد عدد العناصر
ما هو البحث الثنائي؟
البحث الثنائي (Binary Search) هو خوارزمية أكثر كفاءة، لكنها تعمل فقط إذا كانت البيانات مرتبة مسبقًا. تقوم بتقسيم القائمة إلى نصفين في كل خطوة لتقليل عدد المقارنات.
كيف يعمل؟
- تحديد منتصف القائمة
- مقارنة العنصر المطلوب بالعنصر الأوسط
- إذا كان أصغر، يتم البحث في النصف الأيسر
- إذا كان أكبر، يتم البحث في النصف الأيمن
- تتكرر العملية حتى العثور على العنصر
مميزاته:
- سريع جدًا مقارنة بالبحث الخطي
- مناسب للبيانات الكبيرة
- يقلل عدد العمليات بشكل كبير
عيوبه:
- يتطلب ترتيب البيانات مسبقًا
- غير مناسب للقوائم غير المرتبة
الفرق بين البحث الخطي والثنائي
1. طريقة العمل
- الخطي: يفحص عنصرًا عنصرًا
- الثنائي: يقسم البيانات إلى نصفين
2. السرعة
- الخطي: بطيء مع البيانات الكبيرة
- الثنائي: سريع جدًا
3. شرط الاستخدام
- الخطي: لا يحتاج ترتيب
- الثنائي: يحتاج بيانات مرتبة
4. الكفاءة
- الخطي: أقل كفاءة
- الثنائي: أكثر كفاءة بشكل كبير
مثال بسيط
إذا كنت تبحث عن اسم في دفتر:
- البحث الخطي: تقرأ كل صفحة واحدة تلو الأخرى
- البحث الثنائي: تفتح منتصف الدفتر مباشرة ثم تحدد الاتجاه
متى تستخدم كل نوع؟
- استخدم البحث الخطي إذا كانت البيانات صغيرة أو غير مرتبة
- استخدم البحث الثنائي إذا كانت البيانات كبيرة ومرتبة
خلاصة
البحث الخطي بسيط لكنه بطيء، بينما البحث الثنائي أسرع وأكثر كفاءة لكنه يتطلب ترتيب البيانات مسبقًا. اختيار الطريقة المناسبة يعتمد على حجم البيانات وطبيعة استخدامها في البرنامج أو النظام.
