خوارزمية البحث الخطي هي طريقة بسيطة تستخدم للعثور على عنصر محدد في القائمة. تعمل هذه الخوارزمية عن طريق فحص كل عنصر في القائمة بشكل تسلسلي حتى يتم العثور على العنصر المطلوب أو اجتياز القائمة بأكملها.
كيف تعمل
- ابدأ من العنصر الأول في القائمة.
- قارن العنصر الحالي بالقيمة المستهدفة.
- إذا كان العنصر الحالي يساوي القيمة المستهدفة، فسيتم إنهاء الخوارزمية وإرجاع موضع العنصر.
- إذا لم يكن الأمر كذلك، فاستمر في تكرار العناصر المتبقية في القائمة.
- إذا تم اجتياز القائمة بأكملها دون العثور على العنصر الهدف، فستُرجع الخوارزمية قيمة تشير إلى أنه لم يتم العثور عليه.
مثال
لنفترض أن لدينا قائمة من الأعداد الصحيحة ونريد العثور على الرقم 34 في القائمة.
القائمة: {12، 45، 67، 89، 34، 56، 23، 90}
- ابدأ بالعنصر الأول: 12. ليس الرقم المطلوب.
- انتقل إلى العنصر التالي: 45. ليس الرقم المطلوب.
- تابع مع العناصر المتبقية: 67، 89، 34. العنصر 34 يطابق الرقم المطلوب.
- تنتهي الخوارزمية وتعيد الموضع 34، وهو 4.
رمز المثال في C++
#include <iostream>
#include <vector>
int linearSearch(const std::vector<int>& arr, int target) {
for(int i = 0; i < arr.size(); ++i) {
if(arr[i] == target) {
return i;
}
}
return -1;
}
int main() {
std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};
int target = 34;
int result = linearSearch(numbers, target);
if(result != -1) {
std::cout << "Element " << target << " found at position " << result << std::endl;
} else {
std::cout << "Element " << target << " not found in the array" << std::endl;
}
return 0;
}
في المثال المذكور، استخدمنا الدالة linearSearch
للعثور على الرقم 34 في قائمة الأعداد الصحيحة. ستكون النتيجة موضع 34 في القائمة(تبدأ المواضع من 0) أو -1 إذا لم يتم العثور على الرقم.