Algoritmus lineárního vyhledávání je jednoduchá metoda používaná k nalezení konkrétního prvku v seznamu. Tento algoritmus funguje tak, že postupně kontroluje každý prvek v seznamu, dokud není nalezen požadovaný prvek nebo dokud není prošel celý seznam.
Jak to funguje
- Začněte od prvního prvku v seznamu.
- Porovnejte aktuální prvek s cílovou hodnotou.
- Pokud se aktuální prvek rovná cílové hodnotě, algoritmus se ukončí a vrátí polohu prvku.
- Pokud ne, pokračujte v iteraci přes zbývající prvky v seznamu.
- Pokud se projde celý seznam bez nalezení cílového prvku, algoritmus vrátí hodnotu označující nenalezeno.
Příklad
Řekněme, že máme seznam celých čísel a chceme v seznamu najít číslo 34.
Seznam: {12, 45, 67, 89, 34, 56, 23, 90}
- Začněte od prvního prvku: 12. Není požadované číslo.
- Přejděte na další prvek: 45. Není požadované číslo.
- Pokračujte zbývajícími prvky: 67, 89, 34. Prvek 34 odpovídá požadovanému číslu.
- Algoritmus skončí a vrátí pozici 34, což je 4.
Příklad kódu v 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;
}
V uvedeném příkladu jsme použili linearSearch
funkci k nalezení čísla 34 v seznamu celých čísel. Výsledkem bude pozice 34 v seznamu(pozice začínají od 0) nebo -1, pokud číslo nebude nalezeno.