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("没有找到!");
		}
	}
}

posted @ 2022-01-05 19:16  ice--cream  阅读(24)  评论(0编辑  收藏  举报