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).