Răspuns :
Se aplica pentru tablouri ordonate, principiul ei constind in injumatatirea repetata a intervalului in care se cauta elementul dorit. Aceasta tehnica are avantajul rapiditatii: numarul de comparatii necesare este cel mult log2(N).
Necesitatea ca tabloul sa fie ordonat implica faptul ca elementele sale au o componenta (cheie) ce apartine unui tip scalar, iar cautarea se face dupa aceasta componenta.
procedure CautareBinara;
var s,d,m: Integer;
begin
s:=1; d:=N;
{if (x<=a[d]) and (x>=a[s]) then begin}
repeat
m:=(s+d) div 2;
if x>a[m] then s:=m+1
else d:=m-1
until (a[m]=x) or (s>d);
if a[m]=x then {elementul cautat se afla pe pozitia m}
else {nu exista elementul cautat}
end;
un exemplu...sper sa-l intelegi
Necesitatea ca tabloul sa fie ordonat implica faptul ca elementele sale au o componenta (cheie) ce apartine unui tip scalar, iar cautarea se face dupa aceasta componenta.
procedure CautareBinara;
var s,d,m: Integer;
begin
s:=1; d:=N;
{if (x<=a[d]) and (x>=a[s]) then begin}
repeat
m:=(s+d) div 2;
if x>a[m] then s:=m+1
else d:=m-1
until (a[m]=x) or (s>d);
if a[m]=x then {elementul cautat se afla pe pozitia m}
else {nu exista elementul cautat}
end;
un exemplu...sper sa-l intelegi
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de ajutor, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și vă încurajăm să ne salvați în lista de favorite!