您的位置 首页 java

JAVA 实现二分查找算法。我知道你会,但没你想象的那么简单

二分查找算法定义 :二分查找(binary search),也称折半搜索,是一种在 有序数组 中 查找某一特定元素 的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半:

下面是动态实现图:

JAVA 实现二分查找算法。我知道你会,但没你想象的那么简单

二分查找算法

直接上代码:

JAVA 实现二分查找算法。我知道你会,但没你想象的那么简单

二分查找代码实现

可以看到递归和非递归都能实现。在网络上也有人随便就写了这样一段代码如下图:

JAVA 实现二分查找算法。我知道你会,但没你想象的那么简单

有隐患的二分查找代码

注意:可以看到 mid=(lo+h1)/2 计算中间值的时候 这样计算是有一定的风险的。

建议这样计算:mid = low + (high – low)/2 可以准确计算出中间值

使用二分查找要求:数组+有序 +不重复 。

虽然高效但是我们有些情况数组不是有序,所有构建有序数组变成低效的事情。

文章来源:智云一二三科技

文章标题:JAVA 实现二分查找算法。我知道你会,但没你想象的那么简单

文章地址:https://www.zhihuclub.com/199475.shtml

关于作者: 智云科技

热门文章

网站地图