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

java – 二进制搜索中计算机必须进行多少次计算?

发布时间:2020-12-15 04:38:00 所属栏目:Java 来源:网络整理
导读:在这里,我有一个数组: {1,3,5,6,7,8,9,11,13,14,15} 很简单.但是,我们将使用二进制搜索来搜索整数3所在的索引.计算机需要进行多少次比较? 看,我认为这是三个比较,但不知何故,这是不正确的.有人会解释计算机需要进行多少次比较,为什么?我对编程比较陌生,而
在这里,我有一个数组:

{1,3,5,6,7,8,9,11,13,14,15}

很简单.但是,我们将使用二进制搜索来搜索整数3所在的索引.计算机需要进行多少次比较?

看,我认为这是三个比较,但不知何故,这是不正确的.有人会解释计算机需要进行多少次比较,为什么?我对编程比较陌生,而且我并没有很好地理解这个概念.

解决方法

该序列上的二进制搜索算法将如下进行.所以,我们正在寻找3,我们将序列中间的元素与3进行比较.

{1,15}
                =?
                3

它们不相等,所以采用左子序列,我们将3与其中间元素进行比较,即

{1,7}
       =?
       3

它们仍然不相等,然后我们转到左子序列,3}

我们与中间元素进行比较,但是我们有一个大小为2的列表!如果我们选择作为中间元素1,那么我们需要进行另一次比较,即我们需要递归到正确的子序列,即{3}.在那种情况下,我们将进行4次比较!

但是等等,还有另外一个技巧,你还需要在每次迭代或递归调用时检查基本情况,并将这些帐户用于其他比较!

(编辑:李大同)

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

    推荐文章
      热点阅读