二分法查找

本文详细介绍二分法查找算法,如何在已排序的数组中通过每次比较缩小查找范围,以提高搜索效率。通过实例演示了查找过程和索引更新策略。
二分法查找:也称折半查找,前台数组必须有序
/**
     * 二分法查找 :前提必须有序
     */
    @Test
    public  void arrayBinarySearch(){

        int [] array1=new int[]{-40,10,20,30,40,50,60,70,80,90};
        int dest=100;
        int head=0;//初始索引
        int end=array1.length-1;//初始索引的末尾
        Boolean bool=false;
        while (head<=end){
            /**二分法又称折半查找法,从中间查找 所以 / 2*/
            int middle=(head+end)/2;
            if (dest==array1[middle]){//如果找到
                bool=true;
                System.out.println("找到了 索引位置为"+middle);
                break;
            }else if (array1[middle]<dest){//如果数组下标的值 小于 40
                /**,比如    */
                /**数组是从小到大有序
                 * middle=4; middle数组下标
                 * array1[middle]=40,dest=60
                 * 条件就是 40< 60
                 * 初始索引 middle+1
                 * head=4+1;
                 * 进行下一次循环 middle=(head+end)/2
                 * middle=(5+9)
                 * middle=7
                 */
                head=middle+1;
            }else {
                end=middle-1;
            }

        }

        if (!bool){
            System.out.println("没有找到");
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值