二分查找法

概述:二分查找法又称折半查找法,是一种效率较高的查找方式,但,二分查找法要求数组必须采用顺序存储结构有序排列。

下面是相关代码:

public class Demo1 {
    public static void main(String[] args) {
        int nums[] = {0,5,25,35,45,55,65,75};

        // 1.--要查找的数据
        int num = 25;

        // 2.--用二分法进行查找
        //定义三个关键变量
        //最大范围下标
        int maxIndex = nums.length-1;
        //最小范围下标
        int minIndex = 0;
        //中间下标
        int centerIndex = (maxIndex+minIndex)/2;
        while (true){
            if(nums[centerIndex] > num){
                //当中间数据较大时
                maxIndex = centerIndex-1;
            }else if(nums[centerIndex] < num){
                //当中间数据较小时
                minIndex = centerIndex+1;
            }else break;

            //找不到数据
            if (minIndex > maxIndex){
                centerIndex = -1;
                break;
            }

            //当边界更新时需要更新中间要素
            centerIndex = (maxIndex+minIndex)/2;
        }
       System.out.println("您要查找的数在第"+(centerIndex+1)+"位");

    }
}

提示:

①核心就是三个  Index 的移动

比如:怎么移动的,怎么判断,需要判断的要素有哪些,以及三者之间的关系是怎样的

其他的都比较简单了

优化    也可以用到“ IO流 ”来让此程序更灵活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值