Lineární vyhledávání (známé také jako sekvenční vyhledávání) je vyhledávací algoritmus vhodný k nalezení určité hodnoty v seznamu(poli). Funguje na principu procházení všech prvků seznamu(pole).
V případě náhodného rozložení je průměrně potřeba n/2 porovnání. Nejlepší případ nastane tehdy, pokud se hledaná hodnota nachází na prvním místě. Je tedy potřeba pouze jedno porovnání. Nejhorší případ nastane tehdy, když se hodnota v seznamu(poli) vůbec nevyskytuje, eventuelně je na konci seznamu(pole). Pak je potřeba n porovnání.
Výhodou lineárního vyhledávání, oproti efektivnějším algoritmům jako například binární vyhledávání, je možnost použití i na neuspořádaných seznamech(polích).
Lineární vyhledávání má časovou složitost O(n).
Napište metodu, která určí, zda se ve stupním poli nachází hledaný prvek a vratí počet prvků.
static int Hledej (int[] pole, int hledani) { int prvku = 0; //pocatecni hodnota int i = 0; //index for(i=0;i<pole.length;i++) //cyklus pro hledani { if (pole[i]==hledani) prvku++; //nasel se a pricitame } return prvku; }
Napište metodu, která určí, zda se ve vstupním poli nachází hledaný prvek a vrátí pozici prvního z nich.
static int Hledej (int[] pole, int hledani) { int pozice = -1; //pocatecni hodnota - i pro pripadne nenalezeni int i = 0; //index while (i<pole.length) //cyklus pro hledani { if (pole[i]==hledani) // naslo se? { pozice=i+1; //kde je break; //uz nemusime dale hledat } i++; } return pozice; }