/*
* 二分法排序的必须是有序的数组
*/
public class Dichotomy {
public static void main(String[] args) {
//一个有序的数组
int[] arr = new int[] {-10,-6,-3,0,1,2,3,66,99,100};
int dest = 0;//目标
int head = 0;//指向头元素
int end = arr.length - 1;//指向未元素
boolean isFlag = false;//判断是否找到
while(head <= end) {
int mid = (head + end) / 2;
if(dest == arr[mid]) {
System.out.println("找到了,位置是" + mid);
isFlag = true;
break;
}else if(dest < arr[mid]) {
end = mid - 1;
}else {
head = mid + 1;
}
}
if(isFlag == false) {
System.out.println("未找到");
}
}
}
运行结果: