1.新建HalfFind类,在main方法中,调用二分查找法。
public class HalfFind {
public static void main(String[] args) {
int[] a = { 1,2,3,4,5,6,7, 8, 9 };
//折半查找对于数组的是有序数列
System.out.println(halfserach(a, 7));
System.out.println(halfserach(a,-2));
}
// 折半查找
public static int halfserach(int a[], int target) {
// 定义起始点,中间点,终止点
int min = 0;
int max = a.length;
int mid = (min + max) / 2;
// 查找元素
while (true) {
//目标元素大于中间
if (target > a[mid]) {
min = mid + 1;
}
//目标元素小于中间
else if (target < a[mid]) {
max = mid - 1;
}
//如果等于就返回中间下标
else {
return mid;
}
//重新来一次
mid = (max + min) / 2;
//没找到
if (min > max) {
return -1;
}
}
}
}
2.运行效果