有没有大神看一下代码,新手真的看不懂逻辑。为什么会返回5?
public class sorted{
public static int binarySearch(int[] data, int target) {
int start = 0;
int end = data.length - 1;
while(start <= end) {
int mid = (start + end )/2;
if(target< data[mid]) {
end = mid -1;
}else if(target > data[mid]) {
start = mid +1;
}else {
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] values = {1,2,3,4,5,8,8,8,};
int target = 8;
int a = binarySearch( values,target);
System.out.println(a);
}
}