Algorytmy i struktury danych/Wyszukiwanie: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Walen (dyskusja | edycje)
Walen (dyskusja | edycje)
Linia 39: Linia 39:
== Drzewa poszukiwań binarnych ==
== Drzewa poszukiwań binarnych ==


TODO
Drzewa poszukiwań binarnych, to zwykłe drzewa binarne, których węzły dodatkowo
przechowują klucze.
Dodatkowo wymagamy by klucze spełniały następującą własność:
 
Dla dowolnego węzła ''x'':
* wszystkie klucze w lewym poddrzewie węzła ''x'', mają wartości mniejsze niż klucz węzła ''x'',
* wszystkie klucze w lewym poddrzewie węzła ''x'', mają wartości większe lub równe niż klucz węzła ''x''.
 
* wyszukiwanie
* wstawianie
* usuwanie


== Haszowanie ==
== Haszowanie ==


TODO
TODO

Wersja z 17:03, 26 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

Drzewa poszukiwań binarnych, to zwykłe drzewa binarne, których węzły dodatkowo przechowują klucze. Dodatkowo wymagamy by klucze spełniały następującą własność:

Dla dowolnego węzła x:

  • wszystkie klucze w lewym poddrzewie węzła x, mają wartości mniejsze niż klucz węzła x,
  • wszystkie klucze w lewym poddrzewie węzła x, mają wartości większe lub równe niż klucz węzła x.
  • wyszukiwanie
  • wstawianie
  • usuwanie

Haszowanie

TODO