Pagini recente » Cod sursa (job #247052) | Cod sursa (job #1784938) | Cod sursa (job #1857568) | Cod sursa (job #189568) | Cod sursa (job #1295061)
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int v[25],i,n,li,ls,mij,gasit,x;
ifstream f("date.in");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>x;
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=(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";
}