private static int binarySearch(int[] a, int t) {
int lo = 0;
int hi = a.length-1;
while(lo<=hi) {
int minden = (lo+hi)/2;
if(t<a[minden]) {
hi=minden-1;
}
else if(t>a[minden]) {
lo=minden+1;
}else {
return minden;
}
}
return -1;
}
当两数交插时退出循环
每次if判断中都给lo或者hi重新赋值,然后while循环到minden重新算出中心值;