数据结构折半查找对17个元素的查找表做折半查找,则查找长度为5的元素下标依次是( )A8,7 B5,10,12 C9,1

jby043012022-10-04 11:39:541条回答

数据结构折半查找
对17个元素的查找表做折半查找,则查找长度为5的元素下标依次是( )A8,7 B5,10,12 C9,16 D 9,17

已提交,审核后显示!提交回复

共1条回复
sjlmsvv 共回答了20个问题 | 采纳率90%
这个答案不太全吧,查找长度为5的序列不是只有两个数,如果说下标的起点和终点才是两个数,以下开始按起点和终点来确定

首先需要判断起点下标是0还是1
如果是1,合法下标范围是1..17,第一次折半查找查找的下标是(1+17)/2 = 9;
如果是0,合法下标范围是0..16,第一次折半查找的下标是(0+16)/2 = 8;
因此答案B可以排除

从D答案可以推断出,合法下标范围应当是从1开始,所以A也被排除

按照答案C、D的提示(最终查找的下标为16和17),因此,第二次折半的范围是在9的右半
这个下标是:(10+17)/2下取整得到13
继续查找右半得到第三次折半查找的下标为(14+17)/2 下取整得到15
继续查找右半得到第四次折半查找的下标为(16+17)/2 下取整得到16
也就是说,第4次折半就找到了下标为16的元素,当然查找长度就是4,因此答案C也被排除

下面继续查找右半得到第五次折半查找的下标为(17+17)/2 下取整得到17
因此查找长度为5的下标依次是:9, 13, 15, 16, 17,答案就是D

其实如果构建一棵表长17的折半查找判定树,是很容易从上面看出结果来的,而且如果下标从0开始,则答案就是A,依次访问下标的次序是8, 3, 5, 6, 7
1年前

相关推荐