Pagini recente » Cod sursa (job #3163677) | Cod sursa (job #2196216) | Cod sursa (job #1513378)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n;
int v[100];
int i;
int x;
int m;
int cautare_binara(int st,int dr)
{
if(st>dr)
return -1;
else
{
m=st+(dr-st)/2;
if(v[m]>x)
{
cautare_binara(st,m-1);
}
if(v[m]<x)
{
cautare_binara(m+1,dr);
}
if(v[m]==x)
{
if(v[m+1]>x || x==dr)
{
return m;
}
else
{
cautare_binara(m+1,dr);
}
}
}
}
int cautare_binara2(int st,int dr)
{
if(st>dr)
return -1;
else
{
m=st+(dr-st)/2;
if(v[m]<x)
{
cautare_binara2(m+1,dr);
}
else
{
if(m==st)
{
return st;
}
else
{
if(v[m-1]<x)
{
return m;
}
else
{
return cautare_binara2(st,m-1);
}
}
}
}
}
int cautare_binara1(int st,int dr)
{
if(st>dr)
return -1;
else
{
if(v[m]>x)
{
return cautare_binara1(st,m-1);
}
else
{
if(m==dr)
{
return dr;
}
else
{
if(v[m+1]==x)
{
return cautare_binara1(m+1,dr);
}
else
{
return m;
}
}
}
}
}
int main()
{
f>>n>>x;
for(i=1;i<=n;i++)
{
f>>v[i];
}
g<<cautare_binara(1,n)<<"\n";
g<<cautare_binara1(1,n)<<"\n";
g<<cautare_binara2(1,n);
return 0;
}