Linijinės paieškos algoritmas yra paprastas metodas, naudojamas konkrečiam sąrašo elementui rasti. Šis algoritmas veikia nuosekliai tikrindamas kiekvieną sąrašo elementą, kol randamas norimas elementas arba perkeliamas visas sąrašas.
Kaip tai veikia
- Pradėkite nuo pirmojo sąrašo elemento.
- Palyginkite esamą elementą su tiksline reikšme.
- Jei dabartinis elementas yra lygus tikslinei reikšmei, algoritmas baigiasi ir grąžina elemento padėtį.
- Jei ne, toliau kartokite likusius sąrašo elementus.
- Jei perkeliamas visas sąrašas, nerandant tikslinio elemento, algoritmas grąžina reikšmę, rodančią nerasta.
Pavyzdys
Tarkime, kad turime sveikųjų skaičių sąrašą ir norime jame rasti skaičių 34.
Sąrašas: {12, 45, 67, 89, 34, 56, 23, 90}
- Pradėkite nuo pirmojo elemento: 12. Ne norimas skaičius.
- Pereikite prie kito elemento: 45. Ne norimas skaičius.
- Tęskite su likusiais elementais: 67, 89, 34. 34 elementas atitinka norimą skaičių.
- Algoritmas baigia ir grąžina 34 padėtį, kuri yra 4.
Kodo pavyzdys 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;
}
Pateiktame pavyzdyje naudojome linearSearch
funkciją norėdami rasti skaičių 34 sveikųjų skaičių sąraše. Rezultatas bus 34 pozicija sąraše(pozicijos prasideda nuo 0) arba -1, jei skaičius nerastas.