المدونة مدونة المهندس محمد خطيب

خوارزمية البحث الخطي - Linear Search

khoarzmy-albhth-alkhty-linear-search

في علم الحوسبة وعمليات البحث، تُستخدم العديد من الخوارزميات للعثور على عناصر معينة في مجموعة البيانات. واحدة من هذه الخوارزميات هي خوارونية البحث الخطي، التي تعتبر الأبسط والأكثر تواضعًا من بينها. سنتعرف في هذه المقالة على خوارونية البحث الخطي ومساوئها ونقدم مثالًا تطبيقيًا باستخدام لغة PHP.
 

شرح خوارونية البحث الخطي:
خوارزمية البحث الخطي هي خوارزمية بسيطة تستخدم للبحث عن عنصر معين في مجموعة مرتبة أو غير مرتبة من البيانات. تبدأ العملية بالبدء من بداية المجموعة وتتحقق عنصرًا تلو الآخر حتى يتم العثور على العنصر المطلوب أو يتم فحص كل العناصر.
 

linear search image

 

مثال تطبيقي باستخدام PHP:
لنفترض أن لدينا مصفوفة من الأرقام الصحيحة ونريد العثور على عدد محدد في هذه المصفوفة باستخدام خوارونية البحث الخطي في لغة PHP. اليك كود بسيط يمثل ذلك:

function linearSearch($array, $target) {
    $length = count($array);
    for ($i = 0; $i < $length; $i++) {
        if ($array[$i] == $target) {
            return $i; // يتم إرجاع مؤشر الموضع إذا تم العثور على العنصر
        }
    }
    return -1; // إذا لم يتم العثور على العنصر
}

// مثال لاختبار البحث عن العدد 5 في المصفوفة
$numbers = [2, 7, 1, 4, 5, 9];
$targetNumber = 5;
$result = linearSearch($numbers, $targetNumber);
if ($result == -1) {
    echo "لم يتم العثور على العدد.";
}

 else {
    echo "تم العثور على العدد في الموضع: " . $result;
}

 

مساوئ خوارونية البحث الخطي:
بالرغم من بساطتها، إلا أن خوارونية البحث الخطي لديها بعض المساوئ التي يجب أخذها في الاعتبار:
1. الوقت: يتناسب وقت البحث الخطي بشكل مباشر مع حجم المجموعة. عندما تكون المجموعة كبيرة، يصبح البحث الخطي أبطأ بشكل ملحوظ.
2. الذاكرة: لا تتطلب خوارونية البحث الخطي مساحة إضافية في الذاكرة لأنها تقوم بالبحث مباشرة في المجموعة المعطاة. ومع ذلك، قد يكون لديها تأثير على أداء النظام في حالة المجموعات الكبيرة.
 

خوارونية البحث الخطي هي خوارزمية بسيطة وسهلة التنفيذ، لكنها قد تواجه صعوبات في الأداء عند التعامل مع مجموعات كبيرة من البيانات. يجب اختيار الخوارزمية المناسبة بناءً على احتياجات المشروع ومتطلبات الأداء.