تخيل أنك ذهبت إلى مكتبة تحتوي على كتب غير مرتبة على الرفوف بشكل عشوائي، وتريد العثور على كتاب بعنوان "البرمجة للمبتدئين".
كيفية تطبيق البحث الخطي في هذه الحالة: تقف أمام رف الكتب وتبدأ بالنظر إلى أول كتاب على الرف. تقرأ عنوانه:إذا كان عنوان الكتاب هو "البرمجة للمبتدئين"، فأنت وجدت الكتاب! إذا لم يكن الكتاب هو المطلوب، تنتقل إلى الكتاب الثاني. تستمر في الانتقال من كتاب إلى آخر، تقرأ عنوان كل كتاب.في كل مرة تقارن العنوان المطلوب مع العنوان الحالي: إذا وجدت الكتاب في أي وقت، تتوقف عن البحث.إذا انتهيت من جميع الكتب دون العثور على الكتاب المطلوب، تستنتج أن الكتاب غير موجود على الرف.
best case إذا كان الكتاب المطلوب هو أول كتاب على الرف، فسوف تجده فورًا دون الحاجة للبحث أكثر. worst case إذا كان الكتاب المطلوب هو آخر كتاب على الرف أو غير موجود على الإطلاق، فسيتعين عليك فحص كل الكتب حتى تصل إلى نهاية الرف. العلاقة بخوارزمية البحث الخطي: البحث الخطي يعمل بنفس الطريقة: يبدأ من أول عنصر في المصفوفة أو القائمة ويمر عبر جميع العناصر واحدًا تلو الآخر حتى يجد العنصر المطلوب أو ينتهي البحث. هذا النوع من البحث مفيد عندما لا تكون العناصر مرتبة، وهو مشابه جدًا لما تفعله عندما تبحث عن كتاب في مكتبة بدون ترتيب محدد. ملخص: في هذا المثال الواقعي، المكتبة تمثل المصفوفة، والكتب غير المرتبة تمثل العناصر داخل المصفوفة. عملية البحث عن الكتاب تمثل البحث الخطي الذي يمر على كل عنصر واحدًا تلو الآخر حتى تجد ما تبحث عنه.
كان هذا مثال واقعي عن كيفية استعمال الخوارزمية لذا دعنا نحول كل الذي قلنا الي لغة نستطيع قهمها
في أسوء الأحوال worst case فتعقيد الخوارزمية هو O(N) لأنها ستحتاج لفحص كل العناصر N
في أحسن الاحوال best case O(1) قد يكون العنصر المكلوب البحث عنه في اولي عناصر المصفوفة
في متوسط الحالة Average case قد تجد العنصر المطلوب موجود بشكل عشوائي في منتصف المصفوفة مثلا حينها فأن الخوارزمية ستعمل N/2
أخيرا :
تعقيد هذه الخوارزمية يعتمد على عدد العناصر في المصفوفة N في حالتنا 20 لأن الخوارزمية تحتاج لفحص كل عنصر على حدة، مما يجعلها خطية (O(n)) في معظم الحالات.
شكرا جزيلا ,اتمنى لو تتفضل وتضيف كيف نكتب الخوارزميات فهناك شكل برنامج ,شكل مخطط flow chart….الخ هكذا اعتقد الدورة ستكون أغنى ,فصراحة حتى انا ونسيتهم وهذه فرصة لأعيد ترسيم المفاهيم في رأسي