Doğrusal arama algoritması, bir listedeki belirli bir öğeyi bulmak için kullanılan basit bir yöntemdir. Bu algoritma, istenen öğe bulunana veya tüm liste geçilene kadar listedeki her öğeyi sırayla kontrol ederek çalışır.
Nasıl çalışır
- Listedeki ilk öğeden başlayın.
- Geçerli öğeyi hedef değerle karşılaştırın.
- Geçerli öğe hedef değere eşitse, algoritma sonlandırılır ve öğenin konumunu döndürür.
- Değilse, listedeki kalan öğeleri yinelemeye devam edin.
- Hedef öğe bulunmadan tüm liste geçilirse, algoritma bulunmadığını gösteren bir değer döndürür.
Örnek
Diyelim ki bir tamsayı listemiz var ve listede 34 sayısını bulmak istiyoruz.
Liste: {12, 45, 67, 89, 34, 56, 23, 90}
- İlk öğeden başlayın: 12. İstenen sayı değil.
- Sonraki öğeye git: 45. İstenen sayı değil.
- Kalan öğelerle devam edin: 67, 89, 34. Öğe 34, istenen sayıyla eşleşir.
- Algoritma sonlandırılır ve 34 olan 4 konumunu döndürür.
C++'da Örnek Kod
#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
Verilen örnekte, tamsayılar listesinde 34 sayısını bulmak için işlevi kullandık. Sonuç, listedeki 34 konumu(konumlar 0'dan başlar) veya sayı bulunamazsa -1 olur.