入门算法之——二分查找

本文深入探讨了二分查找算法的原理与应用,通过有序集合查找数据,每次以中间值进行分割,递归查找目标数据,适用于高效查找有序数据集。
											入门算法之——二分查找

自己是一个非常喜欢互联网技术的孩子,从15年刚上大学那会儿,就在自学单片机的时侯学习了C语言,然后又学习了汇编语言,可以说在朋友圈内算的上是编程“大神”。在这么多的编程语言中最终我选择了以Java为主要开发语言的编程语言体系。
本来以为自己对Java领域的了解已经很好了(应届生),可当被第一家校招公司到家集团裁掉的时候才发现自己根本就差的太多了,数据结构与算法基本就是一问三不知。所以从今天开始我要每天学一点东东,并发文纪念。
好了,今天我就从二分查找开始学习吧。
对于查找算法有很多,每种查找算法都有它实用的场景,对于二分查找而言,它比较适合用在有序的查找中。什么是二分查找:对于一个有序集合和一个要查找数据,每次以集合中间的数为分割将集合一分为二,此时将得到两个集合和一个中间数据(中间值),左边的数据都将小于中间值,右边集合的数据都将大于中间值,如果带查找数据不等于中间值,则判断在哪个集合中以此递归,找出结果。
代码:

private static void find(int[] date, int min, int max, int fa) {
        if (max == (min + 1)) {
            System.out.println("无此数据");
            return;
        }
        int cen = (min + max) / 2;
        if (date[cen] > fa) {
            find(date, min, cen, fa);
        }
        if (date[cen] == fa) {
            System.out.println("查找到数据: " + date[cen]);
        }
        if (date[cen] < fa) {
            find(date, cen, max, fa);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值