public static void main(String[] args) {
int[] arr = {1, 3, 5, 9, 18, 27, 36, 88, 96, 102};System.out.println("二分查找法的返回元素值是:"+getSearch(arr,96));
}public static int getSearch(int[] arr, int num) {int min = 0;
int max = arr.length - 1;
int mid = (max + min) / 2;
while (true) {
if (num > arr[mid]) {
min = mid + 1;
System.out.println("min运行了"+min);
} else if (num < arr[mid]) {
max = mid - 1;
System.out.println("max运行了"+max);} else {
System.out.println("mid运行了");
return mid;
}if(max < min) {
System.out.println("-1运行了");
return -1;
}
}
}
————————
输出结果死循环输出:min运行了5
int[] arr = {1, 3, 5, 9, 18, 27, 36, 88, 96, 102};System.out.println("二分查找法的返回元素值是:"+getSearch(arr,96));
}public static int getSearch(int[] arr, int num) {int min = 0;
int max = arr.length - 1;
int mid = (max + min) / 2;
while (true) {
if (num > arr[mid]) {
min = mid + 1;
System.out.println("min运行了"+min);
} else if (num < arr[mid]) {
max = mid - 1;
System.out.println("max运行了"+max);} else {
System.out.println("mid运行了");
return mid;
}if(max < min) {
System.out.println("-1运行了");
return -1;
}
}
}
————————
输出结果死循环输出:min运行了5
解决方案 »
- 老事重提,String和 ==
- 排序问题,在线等
- 用纯java驱动方式访问SqlServer2005数据库,遇到一个com.microsoft.sqlserver.jdbc.SQLServerException
- java.io.IOException: CreateProcess: 求助
- 通过什么软件,能将文本转换为二进制各市进行察看,比如UtralEdit 等工具!___特急
- 怎样替换java里原有的类?
- 刚学java不久,请教一个关于break的简单问题
- 求救一个菜鸟问题:
- ResultSet.getDate("columnname")得到的数据用什么类型的变量接收?
- 绝世好JAVA教程!!千万别错过
- JAVA Scanner与BufferedReader
- 我的控制台程序怎么老需要人工按一个按键才能触发。
忘记中间索引值重新定位了。mid=(max+min)/2