java二分查找算法
import java.util.Scanner;
/*
@作 者:leeza
@时 间:2020-06-08 10:24
@简单说明:二分查找
*/
public class Test_01_Binary_search {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入数组规模");
int scope = sc.nextInt();
System.out.println("输入数组");
double list[] = new double[scope];
for (int i = 0; i < list.length; i++) {//为数组赋值
list[i] = sc.nextDouble();
}
System.out.println("输入要检索的元素");
double item = sc.nextDouble();
guess(item, list);
}
private static void guess(double item, double[] list) {
double mid = 0;
int low = 0;
int heigh = list.length;
mid = (Math.floor((mid + (heigh - 1)) / 2));//获取中间索引 如果首尾相加是奇数,则往后取整
int mids = (int) mid;
while (low <= heigh) {
if (item == list[mids]) {
System.out.println("索引为:" + mids);
break;
}
if (item < list[mids]) {
heigh = mids - 1;
}else low = mids + 1;
}
}
}