Obsah

Export page to Open Document format

27a - Vyhľadávanie

pojmy:

klasifikácia:

Základná štruktúra vyhľadávacieho algoritmu:

bool Nasel = false;
while (!(nasel && <množina prvků není vyčerpána>))
{
 //prozkoumej další prvek, a je-li to hledaný, nastav Nasel na true
} //while
bool Search = Nasel;
  1. Pre vyhľadávanie potrebujeme reláciu „rovnosť“ nad typom, ktorý predstavuje kľúč.
  2. Pre vyhľadávanie v zoradenom poli potrebujeme aj reláciu „usporiadanie“.

Nezoradené pole

Sekvenčné vyhľadávanie v nezoradenom poli:

Vyhľadávanie so zarážkou:

Zoradené pole

Sekvenčné vyhľadávanie v zoradenom poli:

Vyhľadávanie v poli zoradenom podľa počtu vyhľadávaní:

Binárne vyhľadávanie:

left:=1; (* levý index *)
right:=n; (* pravý index *)
 
repeat
  middle:=(left+right) div 2;
  if K < Tab[middle].Klic
    then right:=middle - 1 (* hledaná položka je v levé polovině *)
  else left:= middle +1; (* hledaná položka je v pravé polovině *)
until (K=Tab[middle].Klic) or (right < left);
 
Search:= K=Tab[middle].Klic;

Dijkstrova varianta binárneho vyhľadávania:

Uniformné binárne vyhľadávanie:

Fibonacciho vyhľadávanie: