JAVA---二分法查找
前提:所要查找的数组必须有序
package lll;
public class Test {
public static void main(String[] args) {
int[] arr=new int[]{1,2,3,4,5,6,7,8,9,10};
//要查找的数
int dest=81;
//头指针
int head=0;
//尾指针
int end=arr.length-1;
//中间指针
int middle;
//定义一个布尔类型变量,用来标识是否找到了目标
boolean isFlag=true;
//当头指针小于等于尾指针的时候,就一直找
while(head<=end){
//中间指针计算方法
middle=(head+end)/2;
//如果此时中间指针所指向的正是目标
if(arr[middle]==dest){
System.out.print("找到啦!位置是"+middle);
//将标志置否
isFlag=false;
//跳出循环
break;
}//如果中间指针在目标左边,则头指针移向中间指针右边1位
else if(arr[middle]<dest){
head=middle+1;
}
//如果中间指针在目标右边,则尾指针移向中间指针左边1位
else{
end=middle-1;
}
}
//判断标志
if(isFlag){
System.out.println("没有找到!");
}
}
}

浙公网安备 33010602011771号