首页 > 试题广场 >

对有18个元素的有序表做折半查找,则查找A[3]的比较序列的

[单选题]
对有18个元素的有序表做折半查找,则查找A[3]的比较序列的下标依次为()
  • 8-3
  • 9-5-2-3
  • 9-5-3
  • 9-4-2-3
推荐
折半查找:[(max+min)/2]
max=17 min=0
A[17/2]=A[8]比A[3]大
max=7 min=0
A[7/2]=A[3]等于A[3]
编辑于 2017-07-17 10:22:44 回复(7)
题目也不说明下标是从0开始还是从1开始
发表于 2017-08-29 17:19:07 回复(5)
感觉题目有问题
发表于 2017-08-20 19:10:01 回复(0)
垃圾题
发表于 2017-10-09 18:53:05 回复(0)
看题目隐含的条件就是下标从1开始啊,为什么还有这么多人喷题目呢。我觉得出的挺好的呀。考基础嘛。就得是这样的题目。看来很多人并不是完全理解了折半查找啊,第一次low是1,high是18,折半之后middle是9,下取整。然后high=middle-1,这一步很重要,于是第二次查找时low=1,high=8,接下来middle=4,第三次low=1,high=middle-1=3,第四次查找时low=middle+1=3,此时high依然是3.于是第四次查找的是3,总的结果就是9-4-2-3.不懂的人建议看一下折半查找的百度百科再来说此题,并且理解的最好的办法是写代码,然后debug。。。。而不是在这瞎喷题目。实践才是检验真理的唯一标准。
发表于 2018-04-18 10:00:14 回复(6)

7.    若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(     )


发表于 2021-03-18 14:11:43 回复(0)
<p>D</p><p><br></p>
发表于 2021-01-12 03:47:15 回复(0)
关键不是从0开始,关键是取下界,还是取上界,如果取上界就是c,如果取下界,就是a
发表于 2019-08-01 09:30:24 回复(0)
int binaryS(SqList L, int x)
{ int low=0, high=L.length-1, m;
while(low<=high)
{ m=(low+high)/2;
if(L.elem[m].key==x) return m+1;
if(L.elem[m].key>x) high=m-1;
else low=m+1;
} return 0;
}

发表于 2019-05-27 16:41:16 回复(0)
下标从0开始
发表于 2019-05-19 16:00:32 回复(0)
注意下标0-17
发表于 2019-04-20 22:25:38 回复(0)
下标从0开始
发表于 2019-02-18 12:36:46 回复(0)
从0还是1开始?
发表于 2018-10-07 09:57:25 回复(0)
不说从0还是1开始,有点困惑
发表于 2018-09-03 10:54:09 回复(0)
垃圾题,你倒是说下标从几开始啊,两个一样的题,一个对一个错。
发表于 2018-07-27 20:38:16 回复(0)
序列下标还是数组下标???
发表于 2018-03-13 19:00:56 回复(0)
18-1/2=8.5=9 9-1/2=4 4-1/2=1.5=2 只剩三了
编辑于 2017-06-28 16:02:23 回复(0)