Den lineære søkealgoritmen er en enkel metode som brukes til å finne et spesifikt element i en liste. Denne algoritmen fungerer ved å sekvensielt sjekke hvert element i listen til det ønskede elementet er funnet eller hele listen er krysset.
Hvordan det fungerer
- Start fra det første elementet i listen.
- Sammenlign gjeldende element med målverdien.
- Hvis det gjeldende elementet er lik målverdien, avsluttes algoritmen og returnerer posisjonen til elementet.
- Hvis ikke, fortsett å iterere gjennom de gjenværende elementene i listen.
- Hvis hele listen krysses uten å finne målelementet, returnerer algoritmen en verdi som indikerer ikke funnet.
Eksempel
La oss si at vi har en liste over heltall og vi ønsker å finne tallet 34 i listen.
Liste: {12, 45, 67, 89, 34, 56, 23, 90}
- Start ved det første elementet: 12. Ikke ønsket tall.
- Gå til neste element: 45. Ikke ønsket tall.
- Fortsett med de resterende elementene: 67, 89, 34. Element 34 samsvarer med ønsket tall.
- Algoritmen avslutter og returnerer posisjonen til 34, som er 4.
Eksempelkode i 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;
}
I det gitte eksemplet har vi brukt linearSearch
funksjonen til å finne tallet 34 i listen over heltall. Resultatet vil være posisjonen 34 i listen(posisjonene starter fra 0) eller -1 hvis tallet ikke finnes.