Back
#include<stdio.h>
int binsearch(int x, int v[], int n);
int main(int argc, char *argv[])
{
int size=argc,found;
int counter=0,x, v[size-2];
x=atoi(argv[size-1]);
if (argc<3) {printf("Usage: progname integer-list integer-to-be-searched\n"); return -1; }
while(counter <= size-3)
{ v[counter]=atoi(argv[counter+1]);
counter++; }
(found=binsearch(x,v,size-2))!=-1 ? printf("Found=%d\n",v[found]): printf("Not found\n");
return 0;
}
int binsearch(int x, int v[], int n)
{
int low, high, mid;
low=0;
high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(x < v[mid]) high=mid-1;
else if (x > v[mid]) low=mid+1;
else
return mid;
}
return -1;
}
Top |