C++
二分查找需要的条件:
- 用于查找的内容逻辑上来说是需要有序的
- 查找的数量只能是一个,而不是多个
区间:左闭右闭,左闭右开;
左闭右闭:最右端坐标为size-1
left=0;
right= numsize-1;
while(left<=right)
{
middle=(left+right)>>1;
if(nums[middle]>target)
right=middle-1;
else if(num[middle]<target)
left=middle+1;
else return middle;
}
return -1;
左闭右开:
left=0;
right= numsize;
while(left<right)
{
middle=(left+right)>>1;
if(nums[middle]>target)
right=middle;
else if(num[middle]<target)
left=middle+1;
else return middle;
}
return -1;