Cod sursa(job #1295061)

Utilizator issuePop Daniel issue Data 18 decembrie 2014 18:59:34
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#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";
}