50,639
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
public static int binSearch(int[] Array,int key){
int low = 0;
int high = Array.length-1;
while(low<=high){
int mid = low+((high-low)>>>1); //右移一位,相当于除以2,但右移的运算速度更快
//若使用(low+high)/2求中间位置容易溢出
System.out.println("打印low:"+low);
if(key == Array[mid])
return mid;
else if(key > Array[mid])
low = mid+1;
else if(key < Array[mid])
high = mid-1;
}
return -1;
}
int low = 0;int high = Array.length-1
所以他们的长度范围是0~Array.length,应该不会超过Array.length 的长度范围,怎么可能溢出?