Cautarea binara in C++
#include<iostream.h>
int v[25];
int i,n,li,ls,mij,gasit,x;
void main()
{
cout<<„n=”;
cin>>n;
cout<<„Cauta elementul =”;
cin>>x;
for(i=1;i<=n;i++)
{cout<<„v[„<<i<<„]=”; cin>>v[i];}
for(i=1;i<=n;i++)
cout<<v[i]<<” „;
cout<<endl;
li=1; //limita inferioara
ls=n; //limita superioara
gasit=0;
// Cautarea binara are loc numai in cazul in care tabloul este ordonat crescator
while((li<=ls)&&(!gasit))
{
mij=floor((li+ls)/2); //aflam indicele care reprezinta mijlocul tabloului.
if(x==v[mij])
{
cout<<„L-am gasit pe pozitia „<<mij;
gasit=1;
}
else if(x>v[mij]) // Cautare se face in dreapta
li=mij+1; // Actualizare li
else ls=mij-1; // Cautarea se face in stanga
}
if(gasit==0)
cout<<x<<„Elementul cautat nu se gaseste in tablou”;
}