加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

算法入门-二分查找算法

发布时间:2020-12-14 06:30:09 所属栏目:Java 来源:网络整理
导读:算法前提: > > 必须按关键字大小有序排列 算法思路是: 1.每次去数组中的中间值与被查找的值进行比较 2.如果中间值小于被查找的值,则选择中间值右边的数组,重复1,直到发现与被查找的值相等的数组元素或返回某个值,表示被查找的值在数组中不存在。 3.如

算法前提:

> > 必须按关键字大小有序排列

算法思路是:

1.每次去数组中的中间值与被查找的值进行比较

2.如果中间值小于被查找的值,则选择中间值右边的数组,重复1,直到发现与被查找的值相等的数组元素或返回某个值,表示被查找的值在数组中不存在。

3.如果中间值大于被查找的值,则选择中间值左边的数组,重复1,直到发现与被查找的值相等的数组元素或返回某个值,表示被查找的值在数组中不存在。

下面是我个人的代码实现:

[] a = { 1,3,4,5,6,8,9,13,14,17,21 x = 21 index = String result = index == -1 ? "被查询的值[" + x + "]不在数组中!" : "被查询的值[" + x + "]在数组中,且下标为:" + a[n] == x dichotomy([] a, (a == NullPointerException("数组不能为空!" } index = 0 last = a.length - 1 middle = 0 (index >= 0 && index <= print(a,index,last + 1 middle = (index + last) / 2 (a[middle] == (a[middle] < index = middle + 1 (a[middle] > last = middle - 1 -1 print([] a, index, (a != && index >= 0 && index <= StringBuffer buffer = ( i = index; i < last; i++ buffer.append(a[i] + " " System.out.println("需要继续进行查找的数组为:" + }

运行效果:

需要继续进行查找的数组为:1 3 4 5 6 8 9 13 14 17 219 13 14 17 2117 212121]在数组中,且下标为:10
需要继续进行查找的数组为:1 3 4 5 6 8 9 13 14 17 219 13 14 17 2117 2121212]不在数组中!
需要继续进行查找的数组为:1 3 4 5 6 8 9 13 14 17 219 13 14 17 219 131313]在数组中,且下标为:7
需要继续进行查找的数组为:1 3 4 5 6 8 9 13 14 17 211 3 4 5 61 31]在数组中,且下标为:0
需要继续进行查找的数组为:1 3 4 5 6 8 9 13 14 17 218]在数组中,且下标为:5

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读