入门算法之——二分查找
自己是一个非常喜欢互联网技术的孩子,从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);
}
}
本文深入探讨了二分查找算法的原理与应用,通过有序集合查找数据,每次以中间值进行分割,递归查找目标数据,适用于高效查找有序数据集。

426

被折叠的 条评论
为什么被折叠?



