Algorytmy i struktury danych/Wyszukiwanie: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 32: | Linia 32: | ||
'''if''' (A[m]<x) '''then''' l:=m+1 | '''if''' (A[m]<x) '''then''' l:=m+1 | ||
'''else if''' (A[m]>x) '''then''' r:=m-1 | '''else if''' (A[m]>x) '''then''' r:=m-1 | ||
'''else''' '''return''' ''m'' { ponieważ A[m]=x } | '''else''' '''return''' ''m''; { ponieważ A[m]=x } | ||
'''end'''; | '''end'''; | ||
'''return''' ''brak poszukiwanego elementu'' | '''return''' ''brak poszukiwanego elementu'' |
Wersja z 08:56, 22 lip 2006
Wyszukiwanie
W niniejszym wykładzie opiszemy podstawowe techniki dotyczące wyszukiwania.
Zajmiemy się również prostymi strukturami słownikowymi, które oprócz
wyszukiwania, umożliwiają dodawanie i usuwanie elementów.
Wyszukiwanie liniowe
TODO
function Szukaj(x, A[1..n]) begin for i:=1 to n do if A[i]=x return i return brak poszukiwanego elementu end
Wyszukiwanie binarne
TODO
function WyszukiwanieBinarne(x, A[1..n]) { zakładamy, że tablica A, jest uporządkowana rosnąco } begin l:=1;r:=n; while (l<=r) do begin m:=(l+r) div 2; if (A[m]<x) then l:=m+1 else if (A[m]>x) then r:=m-1 else return m; { ponieważ A[m]=x } end; return brak poszukiwanego elementu end
Drzewa poszukiwań binarnych
TODO
Haszowanie
TODO