首页 > 试题广场 >

对有序数组{2、11、15、19、30、32、61、72、8

[单选题]
对有序数组{2、11、15、19、30、32、61、72、88、90、96}进行二分查找,则成功找到15需比较()次
  • 3
  • 4
  • 2
  • 5
推荐
C
0     1      2     3      4     5     6       7     8     9   10
2、11、15、19、30、32、61、72、88、90、96
第一次  index=(0+10)/2=5   对应32 ; 比15大  所以下次范围是 0到4
第二次  index=(0+4)/2=2  对应15   找到
编辑于 2015-10-04 15:01:14 回复(1)
需要两次
第一次折半查找找到的是第六个数据即32  并且32>15 所以在左半段查找
 这第二次折半查找找到第三个数据,这第三个数据刚好是15,即返回。
需两次
发表于 2015-10-03 14:08:19 回复(1)
C,
二分查找第一次:index=(0+length-1)/2
第二次:index'=(0+index-1)/2 
发表于 2015-10-03 23:07:26 回复(0)
向下取整
发表于 2015-10-23 17:08:38 回复(0)
答案:C
序列***11个数据,
第一次比较下标为11/2=5的元素32
第二次比较下标为5/2=2的元素15,得到要查找的数
发表于 2015-01-13 12:51:21 回复(0)
只说一点,数组是从下标0开始,index=array.length/2,若index=5,不是指第5个元素,而是指数组下标为5的元素
发表于 2016-08-25 11:26:28 回复(0)
答案:C
序列***11个数据,
第一次比较下标为11/2=5的元素32
第二次比较下标为5/2=2的元素15,得到要查找的数
发表于 2018-10-12 08:42:40 回复(0)
#向下取整
1、A[11/2]=A[5]=32
2、A[5/2]=A[2]=15
发表于 2020-08-15 10:20:10 回复(0)
刚开始时第一个元素和最后一个元素不与15比较吗,求解
发表于 2016-09-18 23:55:31 回复(3)
我有点不清楚哈,但在代码中,两次比较能得出来吗?比如我们在第一次比较的时候,如果使用>a[index]作为判定条件的话,那么第二次选中15时,难道不会因为>a[index]条件不满足而跳刀第三次的比较=a[index]这个判定条件吗?这样的话难道不是3次比较吗?希望有人能解答一下哈
发表于 2016-05-11 16:46:43 回复(1)
二分查找: index = (left -right)/2
发表于 2023-04-11 11:13:30 回复(0)
问题只与下标有关
发表于 2022-10-10 13:16:46 回复(1)
奇数的时候:就是中间值偶数的时候:取n/2取整,实际上剩下的序列是 索引为取整左边的序列。
发表于 2022-09-20 11:49:42 回复(0)
两次 1. (0+10)/2 =5 找到32 往左边找 2. (0+5)/2 =2 找到15
发表于 2022-08-06 13:12:48 回复(0)
<p>这是成功找到的次数</p>
发表于 2020-06-30 11:34:01 回复(0)

二分查找:折半查找

发表于 2020-03-04 13:21:54 回复(0)