Algorytm wyszukiwania liniowego z wartownikiem
Program symuluje działanie algorytmu wyszukiwania liniowego z wartownikiem wartości w zbiorze.
Algorytm wyszukiwania liniowego:
Algorytm wyszukiwania liniowego z wartownikiem jest usprawnieniem tradycyjnego algorytmu wyszukiwania liniowego.
Polega na dodaniu na końcu zbioru (tablicy) tzw. wartownika - czyli elementu równego poszukiwanemu elementowi, dzięki temu mamy pewności, że poszukiwany element na pewno przeszukiwanym zbiorze. W momencie znalezienia wyszukiwanego elementu sprawdzamy czy indeks tego elementu jest mniejszy od liczby elementów w tablicy (licząc z wartownikiem) jeśli tak, to zwracamy index znalezionego elementu, w przeciwnym razie zwracamy -1.
Dzięki zastasowaniu wartownika, nie musimy przy każdej iteracji sprawdzać dodatkowo czy czasem nie osiągneliśmy już końca tablicy - co przyspiesza działanie programu.
Przykładowa implementacje w Pythonie
a = [5, 12, 1, 88, 45, 21, 68, 99, 56, 4] N = len(a) def znajdz_dana(wartosc): a.append(wartosc) i = 0; while a[i] != wartosc: i += 1 if(i < N): return i return -1 szukana = 45 pozycja = znajdz_dana(szukana) if pozycja != -1: print(f'Liczbę {szukana} znaleziono na pozycji {pozycja}.') else: print(f'W przeszukiwanej liście nie znaleziono liczby {szukana}.')