大家好,又见面了,我是你们的朋友全栈君。
/**
* 二分查找法
* 注: 数组元素必须有顺序
*
*/
public class sort4 {
public static void main(String[] args) {
int [] arr ={1,2,3,4,5,6,7,8};
int a = binarySerarch(arr,7); // 从这些数中查找7返回这个数字的索引
System.out.println(a);
}
private static int binarySerarch(int[] arr, int key) {
int min = 0; // 最小的索引
int max = arr.length - 1; // 最大的索引
while(min<=max){
System.err.println("最大索引" + max + "---" + "最小索引:" + min);
int mid = (min + max)/2; // 中间索引
int midVal = arr[mid]; // 中间索引的值
if (midVal<key) { // 猜小了
min = mid + 1;
}else if(midVal>key) {
max = mid-1;
}else {
return mid;
}
}
return -1;
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147229.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...