Algorytmy i struktury danych/Wyszukiwanie: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
| Linia 23: | Linia 23: | ||
TODO | 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''' { A[m]=x } '''return''' ''m'' | |||
'''end'''; | |||
'''return''' ''brak poszukiwanego elementu'' | |||
'''end''' | |||
== Drzewa poszukiwań binarnych == | == Drzewa poszukiwań binarnych == | ||
Wersja z 08:55, 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 { A[m]=x } return m
end;
return brak poszukiwanego elementu
end
Drzewa poszukiwań binarnych
TODO
Haszowanie
TODO