首先 什么是二分查找。在一段连续的从小到大排序的数组中,我们取中间值,如果中间值小于我们要查找的数(那我们要查找的数在mid的右边)所以我们往右继续取中值 继续查找(查找范围缩小一半)
代码:
int BinarySearch(int nums[],int len,int a)
{
int left=0; //左边界
int right=len-1;//右边界
int mid; //中值
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]<a)//说明要查找的数在中值的右边
{
left=mid+1;
}
else if(nums[mid]>a)//说明要查找的数在中值的左边
{
right=mid-1;
}
else if(nums[mid]==a)
{
return mid;
}
}
return-1; //没查找到返回-1
}