Cod sursa(job #1428827)
Utilizator | Data | 5 mai 2015 09:59:55 | |
---|---|---|---|
Problema | Cautare binara | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<iostream>
using namespace std;
int st,x,n,dr,poz,m,a[101];
int main()
{ cout<<"n= "; cin>>n;
cout<<"x= "; cin>>x;
for(int i=1;i<=n;i++) cin>>a[i];
st=1; dr=n; poz= -1;
while(poz== -1 && st<=dr)
{
m=(st+dr)/2;
if(a[m]==x) poz=m;
else if(x<a[m]) dr=m-1;
else st=m+1;
}
if(poz>=0) cout<<poz;
else cout<<x;
return 0;
}