Sunteți pe pagina 1din 2

Cautarea binara in C++, iterativ

#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�;