int Binary_Search(int a[],int x,int left,int right)
{
if(left>right)return;
int i=left,j=right;
int mid=(i+j)/2;
if(a[mid]==x)return mid;
else if(a[mid]>x)return Binary_Search(a,x,left,mid-1);
else return Binary_Search(a,x,mid+1,right);
while(left<=right)
{
mid=(left+right)/2;
if(K<a[mid])right=mid-1;
else if(K>a[mid])left=mid+1;
else return mid;
}
}
int binarySearch(int a[],int K,int left,int right)
{
int mid,NoFound=-1;
while(left<=right)
{
mid=(left+right)/2;
if(K<a[mid])right=mid-1;
else if(K>a[mid])left=mid+1;
else return mid;
}
return NoFound;
}
int main()
{
int a[MAXSIZE],n,x;
scanf("%d",&n);
for(int i=0;i<n ;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
int position=Binary_Search(a,x,0,n-1);
printf("%d\n",position+1);
return 0;
}
原文:https://www.cnblogs.com/dmxs/p/13973509.html