package Demo;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
int [] hours = {0,1,2,3,4,5};
int target = 2;
Arrays.sort(hours);
int i = 0,j = hours.length;
int a = 0;
while(1 < j - i){
int m = (i + j) >>> 1;
if(hours[i] > target){
j = m;
}else{
i = m;
}
}
System.out.println(i);
if(target == hours[i]){
a = hours.length - i + 1;
}
System.out.print(a);
}
}
用打印语句测试出可以找到索引3,但是2的索引值应该是2。
错误:二分查找中判断的索引用错了,本来应该是hours[m]但是好久没写二分查找了用成了hours[i]导致查不出对应的结果。