package danei;
import java.util.Scanner;
/*
* Binary search 二分查找法
*/
public class erfenDemo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int array[]= {1,2,3,4,5,6,7,8,9};
System.out.print("请输入你要查找的数:");
int needNum=scan.nextInt();//查找下标
int end=array.length-1;//数组查找的准备
int start=0;//开始指针
int index=0;//中线指针
int nem=0;//循环的次数
int middle=-1;//下标位置
boolean ok=false;
while(start<=end) {
nem++;
//计算当前指向的位置
middle=(end+needNum)/2;
ok=true;
if(array[middle]>needNum) {//要查找的数字在当前指针的右边
end=middle-1;
}else if(array[middle]<needNum) {//要查找的数字在当前指针的左边
start=middle+1;
}else {
index=middle;
break;
}
}
System.out.println("查找了"+index+"次");
if(ok) {
System.out.println();
System.out.println("你要查找的数字被找到,在下标为"+middle+"的位置上");
}else {
System.out.println("你要查找的下标没有在数字中。");
}
}
}