JAVA 数组中二分法查找,不知道错在哪儿了。。。

发布网友

我来回答

2个回答

热心网友

public static void main(String[] args) {
int[] arr = { 3, 5, 6, 8, 7, 9, 10, 13, 54, 88, };
int x = searchLoop(arr, 10);
System.out.println("下标位置为: " + x);
}
public static int searchLoop(int[] list, int findValue) {
int start = 0;
int end = list.length - 1;
while (start <= end) {
int mid = (start+end)/2;
int midValue = list[mid];
if (findValue == midValue) {
return mid;
} else if (findValue < midValue) {
end = mid - 1;
} else {
start = mid + 1;
}
}
return -1;
}

热心网友

a7次因为有序你可以每次挑数组的最中间一个数大于查右边小于查左边不满足的直接忽略每次都删掉一半7次就够了PS:这个问题应该放在编程设计里面问的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com