有大手子指出一下哪里出错了吗,琢磨了半天没搞明白。。
// 二分法查找
static int binarySearch(int a,int[] arr){
// 最大索引
int maxIndex = arr.length -1;
// 最小索引
int minIndex = 0;
// 中间索引
int halfIndex = minIndex+(maxIndex-minIndex)/2;
while (minIndex<=maxIndex){
// 找到时
if (arr[halfIndex]==a){
return halfIndex;
}else if (arr[halfIndex]<a){// 比a小时
minIndex = halfIndex + 1;
}else {// 比a大时
maxIndex = halfIndex - 1;
}
halfIndex = minIndex+(maxIndex-minIndex)/2;
}
return -1;
}
把
centerindex = centerindex+1;
改为
minindex = minindex +1;
cneterindex = centerindex-1;
改为
maxindex = maxindex-1;
27、30行错误,应该是最小值,最大值