首页 > 试题广场 >

在有序表( 7, 13, 33, 87, 99, 97, 1

[单选题]
在有序表( 7, 13, 33, 87, 99, 97, 117, 123,129,131,137)中,使用二分查找算法查找13时需要的关键字比较次数是()
  • 4
  • 3
  • 2
  • 5
总共11个数哈。 索引:0-10 第一次:(0+10)/2=5 5→97 97>13 第二次:(0+4)/2=2 2→33 33>13 第三次:(0+1)/2=0 0→7 7<13 第四次:(1+1)/2=1 1→13 bingo!
发表于 2020-04-10 11:17:17 回复(0)
判断的顺序依次是97,33,7,13
发表于 2020-03-06 21:10:46 回复(0)
left, right=0,10
step1. mid=(left+right)//2=5  num[5]=97    13<97   right=mid-1=4
step2. mid=(left+right)//2=2  num[2]=33    13<33   right=mid-1=1
step3. mid=(left+right)//2=0  num[0]=7      13>7     left=mid+1=1
step4. mid=(left+right)//2=1  num[1]=13    13==13  break
应该是这样吧😂😂😂
发表于 2019-03-15 11:12:45 回复(4)
说好的有序呢?。。。
发表于 2020-05-06 16:07:54 回复(4)
注意最后确定的时候还要判断一次。
发表于 2020-01-16 20:46:39 回复(4)
首先,给出的序列并不是有序的,
其次,并没有说明向上取整还是向下取整,因此改题目有这两个问题!
发表于 2021-08-15 16:16:52 回复(0)
比较的时候,如果是小于,索引要+1,如果是大于,索引要-1
发表于 2020-04-20 21:46:07 回复(0)
注意最后确定的时候还要判断一次。
发表于 2021-11-02 16:51:51 回复(0)
left, right=0,10 step1. mid=(left+right)//2=5  num[5]=97    13<97   right=mid-1=4 step2. mid=(left+right)//2=2  num[2]=33    13<33   right=mid-1=1 step3. mid=(left+right)//2=0  num[0]=7      13>7     left=mid+1=1 step4. mid=(left+right)//2=1  num[1]=13    13==13  break 应该是这样吧😂😂😂
发表于 2021-06-24 23:49:44 回复(0)
这个题的题目有点问题,这个表( 7, 13, 33, 87, 99, 97, 117, 123,129,131,137) 中的99和97需要换一下位置。
然后正常模拟二分程序就可以了。
发表于 2020-07-21 17:23:27 回复(0)
有歧义,也可以只比较3次
发表于 2020-04-13 16:19:53 回复(3)