我的疑问是为什么不能是简单的小于,而要加个等于,我们来考虑一下下面这种情况:我们判断整数1是否位于数组a[2]={0,1}里面,如果循环条件是left<right
,那么
第一次查找:left=0,right=1,mid=0,a[mid]<0,left=mid+1=1,此时left==right,跳出循环,查找失败,而这个结果和实际情况是不一致的,所以循环条件不能是left<right
总之就是,如果是left<right
,那就会漏掉所要查找的元素恰好就位于left或者right上的这两种边界情况