Wyszukiwanie liniowe¶
Opis problemu¶
Istnienie elementu¶
Implementacja¶
Opis implementacji¶
Funkcja linear
w module Search
(linie 1 i 2) zwraca jako wynik wartość prawda/fałsz i przyjmuje dwa argumenty: listę do przeszukania oraz wartość poszukiwanego elementu. Jeżeli lista jest pusta to funkcja zwraca wartość false
informującą o tym, że poszukiwanego elementu nie znaleziono na liście (linie 3 i 4). Jest to tzw. warunek stopu rekurencji. Jeżeli w liście pozostały jeszcze jakieś elementy do sprawdzenia, to sprawdzamy, czy pierwszy element listy (pobrany za pomocą funkcji hd
) jest poszukiwaną wartością (linia 6). Jeżeli tak, to funkcja zwraca wynik true
(linia 7). W przeciwnym przypadku wywołujemy rekurencyjnie funkcję linear
, jako argumenty przekazując listę bez pierwszego elementu (do tego używamy funkcji tl
), oraz wartość poszukiwanego elementu.
W części głównej programu na początku przygotowujemy dane do problemu: listę (linia 16) oraz wartość poszukiwanego elementu (linia 17). Następnie wywołujemy funkcję linear
z modułu Search
z wcześniej przygotowanymi parametrami i jej wynik zapisujemy w nowej zmiennej result
(linia 19). W zależności od wyniku (linia 21) wypisujemy odpowiedni komunikat (linie 22 i 24).
Pozycja elementu¶
Implementacja¶
Opis implementacji¶
Funkcja linear
w module Search
(linie 1 i 2) zwraca jako wynik liczbę całkowitą i przyjmuje trzy argumenty: listę do przeszukania, wartość poszukiwanego elementu oraz numer obecnie sprawdzanego indeksu. Jeżeli lista jest pusta to funkcja zwraca wartość -1
informującą o tym, że poszukiwanego elementu nie znaleziono na liście (linie 3 i 4). Jest to tzw. warunek stopu rekurencji. Jeżeli w liście pozostały jeszcze jakieś elementy do sprawdzenia, to sprawdzamy, czy pierwszy element listy (pobrany za pomocą funkcji hd
) jest poszukiwaną wartością (linia 6). Jeżeli tak, to funkcja zwraca jako wynik wartość index
(linia 7). W przeciwnym przypadku wywołujemy rekurencyjnie funkcję linear
, jako argumenty przekazując listę bez pierwszego elementu (do tego używamy funkcji tl
), wartość poszukiwanego elementu oraz indeks zwiększony o jeden.
W części głównej programu na początku przygotowujemy dane do problemu: listę (linia 16) oraz wartość poszukiwanego elementu (linia 17). Następnie wywołujemy funkcję linear
z modułu Search
z wcześniej przygotowanymi parametrami i jej wynik zapisujemy w nowej zmiennej index
(linia 19). W zależności od wyniku (linia 21) wypisujemy odpowiedni komunikat (linie 22 i 24).