Sunteți pe pagina 1din 2

1.

2 Cautare binara
In cazul unui fisier cu cheile ordonate se pot utiliza metode de cautare mult mai eficiente. Cautarea binara este o astfel de metoda. Presupunem un fisier cu ninregistrari si o sortare a cheilor in ordine nedescrescatoare (alfabetic pentru siruri de caractere) Dupa fiecare comparatie multimea de chei in care mai trebuie cautat se injumatateste. Dupa j cautari multimea mai j contine [n/2 ] elemente (n numar intreg). Cazul cel mai nefavorabil necesita O(log2n) comparatii. Algoritmul este prezentat in Figura 2.

procedure cautare_binara (f: fis_int; var i: integer; n,k: integer); var gata: boolean; j,u,m: integer; begin i:=0; j:=1; u:=n; gata:=false; while (j<=u) and (not gata) do begin m:=(j+u)div 2; case compara(k,f[m].cheie) of >: j:=m+1; =: begin i:=m; gata:=true; end <: u:=m-1; end; end; end;
Figura 2. Cautare binara Algoritmul este echivalent cu un arbore de decizie. Nodurile reprezinta numarul cheii testate. In Figura 3 este prezentat arborele de decizie pentru n=1

Figura 3. Arborele de decizie echivalent

S-ar putea să vă placă și