Imi poate arata si mie cineva algoritmul de cautare binara in Pascal?
Răspunsuri la întrebare
Răspuns de
1
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
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă