Sunteți pe pagina 1din 1

CĂUTARE BINARĂ

Căutarea binară este un mod ușor de căutare al unor elemente într-un vector sortat într-un
timp mai mic.
Aceasta are un algoritm destul de simplu de ințeles.
Avem două contoare st(stânga) și dr(dreapta).Prima oară vom inițializa st=1 și dr=n.După
vom verifica dacă mijlocul dintre ele este egal un elementul cautat.Dacă nu este avem două
cazuri.
1.element căutat > v[mij] => elementul se află în dreapta lui mijl deci stânga devine mijl+1.
2.element căutat < v[mijl] => elementul se află în stânga lui mijl deci dreapta devine mijl-1.
Algoritmul arată astfel
while(st<=dr){
mijl=(st+dr)/2;
if(v[mijl]==elem) ///daca am gasit elementul.
{
poz=mijl; ///retin pozitia
st=dr+1; ///opresc while-ul.
}
else
if(v[mijl]<elem) /// daca e in dreapta
st=mijl+1; /// mut st mai in dreapta
else ///daca e in stanga
dr=mijl-1; ///mut dr mai in stanga
Acesta are o complexitate O(log n).
Pentru o sortare rapidă puteți folosi funcția sort din biblioteca algorithm.
sort(v+1,v+n+1);

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