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次比较! 但是等等,还有另外一个技巧,你还需要在每次迭代或递归调用时检查基本情况,并将这些帐户用于其他比较! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |