int binary_search(int a[],int n,int key)
{
int low=0;
int high=n-1;
int mid;
while(low<=high) //这里一定要写小于等于,等于不写,则在查找边缘元素是会出错。
{
mid=(low+high)/2; //mid的计算是在while循环里面,即每循环一次更新一次,否则会造成死循环;
if(a[mid]<key)
low=mid+1;
else if(a[mid]>key)
high=mid-1;
else
return mid;
}
return 0;
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int index=binary_search(a,10,10);
cout<<index<<endl;
return 0;
}
{
int low=0;
int high=n-1;
int mid;
while(low<=high) //这里一定要写小于等于,等于不写,则在查找边缘元素是会出错。
{
mid=(low+high)/2; //mid的计算是在while循环里面,即每循环一次更新一次,否则会造成死循环;
if(a[mid]<key)
low=mid+1;
else if(a[mid]>key)
high=mid-1;
else
return mid;
}
return 0;
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int index=binary_search(a,10,10);
cout<<index<<endl;
return 0;
}