首页 > 试题广场 >

在154个元素组成有序表进行二分法查找,可能的比较次数为

[不定项选择题]
在154个元素组成有序表进行二分法查找,可能的比较次数为?
  • 10
  • 8
  • 4
  • 1
折半查找过程可用二叉树来描述,把有序表中间位置上的结点作为树的根结点,左子表和右子表分别对应树的左子树和右子树。折半查找的过程就是走一条从根节点到被查结点的一条路径,比较的次数就是该路径中结点的个数,即,该结点在树中的层数。 所以该题可以转换为求有154个结点的二叉树有几层,小于等于这个层数的数值就是答案。 又知,深度为K的二叉树最多有2的K次方-1个结点,深度为7的二叉树最多有127个结点,深度为8的二叉树最多有255个结点,所以154个结点的二叉树有8层。
发表于 2016-04-02 16:26:46 回复(7)
[log2(154)] = 7,最差的情况下找8次,所以8次及8次以内都有可能找到。
发表于 2016-03-24 10:18:47 回复(5)
为什么是按2的次方来算?二分法不是会每次减一吗。。这样的话2的n方就不准确了啊!我在纸上推算和代码测试了最多都只有7次。。 求解答
发表于 2016-03-24 12:08:03 回复(9)
用二分查找法查找某个数据,最多需要比较(logn)+1次,注意这里的对数函数是以2为底,并且是向下取整
发表于 2020-07-10 11:51:58 回复(0)
最开始我认为28=256就没选B。原来是欠考虑了 。二分查找可以看做是对二叉树的查找,对于完全二叉树而言,一层树为一个结点,二层树为3个,三层为8-1 (2的三次方-1)。。。。七层27  -1= 127,剩下的还能组成一层结点,所以是8层
发表于 2017-07-13 21:45:36 回复(0)
通过判定树可以描述二分查找过程,查找成功的最大次数为:log2n(取下限),查找不成功的次数为log 2 n(取下限)+1;
因此 154个元素组成有序表进行二分法查找,最多比较次数为查找不成功的的次数: log 2 n(取下限)+1=8
编辑于 2016-07-20 11:44:15 回复(0)
过程可用二叉树来描述,把有序表中间位置上的结点作为树的根结点,左子表和右子表分别对应树的左子树和右子树。折半查找的过程就是走一条从根节点到被查结点的一条路径,比较的次数就是该路径中结点的个数,即,该结点在树中的层数。 所以该题可以转换为求有154个结点的二叉树有几层,小于等于这个层数的数值就是答案。 又知,深度为K的二叉树最多有2的K次方-1个结点,深度为7的二叉树最多有127个结点,深度为8的二叉树最多有255个结点,所以154个结点的二叉树有8层。
发表于 2017-04-26 15:22:04 回复(0)
2的7次方=128,解法应该是:
(log158)的向下取整=7,再加上1,为8
发表于 2023-02-22 19:45:00 回复(0)
8次我知道 1次我也知道 那么为什么有4次?
发表于 2020-12-17 22:28:27 回复(0)
这里可以假设我们要查找的元素为负无穷或者正无穷,那么这将是最坏的查找情况。我们需要查找的次数n应该有下面的关系:
2(n-1)<=154<=2n
可以理解为我们需要遍历整个列表中的元素(因为最后要和第一个或者最后一个元素比较)

发表于 2020-07-01 16:32:12 回复(0)
只要不大于最大查找次数都ojbk
发表于 2020-05-15 22:43:25 回复(0)
将其转换为一棵二叉树  对应的树的结点个数。然后其层数就是二分查找的比较次数
发表于 2020-03-14 17:17:41 回复(0)
[log154]=8,也就是说最差的情况下要查找8次。8次以内都有可能
发表于 2018-12-26 17:17:34 回复(0)
自己只算了2的8次方,大于154,就把小于7的值都算进去了。
发表于 2017-05-07 15:07:47 回复(0)
其实我觉得可以用除以2的办法,除几次能到0以下,那答案就是几
发表于 2016-09-12 17:14:24 回复(0)
折半查找,最坏的情况下只能有8次
发表于 2016-05-12 13:27:19 回复(0)
可以用归纳法来证明,如果总共有n个元素,2i =<n<2(i+1) -1,则最多需要查找i次。
发表于 2016-04-01 10:46:08 回复(0)
用12345举例,二分查找5需要3次,就知道这题为什么也需要8次了
发表于 2016-03-30 00:22:09 回复(1)
ryl头像 ryl
154个元素,排成二叉树需要(2^8-1>154>2^7-1)8层,所以最多8次比较。
发表于 2016-03-28 20:35:37 回复(0)