لکیری سرچ الگورتھم ایک سادہ طریقہ ہے جو کسی فہرست میں کسی مخصوص عنصر کو تلاش کرنے کے لیے استعمال ہوتا ہے۔ یہ الگورتھم فہرست میں ہر ایک عنصر کو ترتیب وار جانچ کر کے کام کرتا ہے جب تک کہ مطلوبہ عنصر نہ مل جائے یا پوری فہرست کو عبور نہ کر لیا جائے۔
یہ کیسے کام کرتا ہے
- فہرست میں پہلے عنصر سے شروع کریں۔
- موجودہ عنصر کا ہدف کی قدر سے موازنہ کریں۔
- اگر موجودہ عنصر ہدف کی قدر کے برابر ہے، الگورتھم ختم ہو جاتا ہے اور عنصر کی پوزیشن واپس کرتا ہے۔
- اگر نہیں، تو فہرست میں باقی عناصر کے ذریعے تکرار جاری رکھیں۔
- اگر ٹارگٹ عنصر کو تلاش کیے بغیر پوری فہرست کو عبور کیا جاتا ہے، تو الگورتھم ایک ایسی قدر لوٹاتا ہے جو نہیں ملا۔
مثال
ہم کہتے ہیں کہ ہمارے پاس عدد کی ایک فہرست ہے اور ہم فہرست میں نمبر 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۔