数据结构检索题库

1、给定关键码序列26, 25, 20, 33, 21, 24, 45, 204, 42, 38, 29, 31,用散列法进行存储(本题采用闭散列方法解决冲突),规定负载因子α=0.6。请给出最合理的除余法的散列函数。

 A、H(key)=key % 17

 B、H(key)=key % 23

 C、H(key)=key % 19

 D、H(key)=key % 20

解析

在插入所有关键码后,负载因子最大为0.6。元素数目为12,散列表长度为20,小于20的最大质数为19。

答案: C

2、有两个整数的集合A,B,大小分别为n,m=O(log(n)),由顺序表存储,并且已经排好序,现在要求他们的交集,请问你设计的高效算法的复杂度是()

 A、n

 B、

扫描二维码关注公众号,回复: 2514771 查看本文章

 C、

 D、

解析

枚举每个集合B中的元素,去集合A中寻找是否存在相同的元素。枚举的复杂度是logn,寻找可以用二分查找,复杂度是logn,故为logn的平方

答案: B

3、折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败

 A、20,50

 B、30,88,70,50

 C、20,70,30,50

 D、30,88,50

解析

一共10个记录,先与第5个记录20比较,58>20,所以继续查找右半部分,与70比较,58<70,继续查找左半部分,与30比较,58>30,继续查找右半部分,与50比较,查找结束。

4、在各种查找方法中,平均查找长度与结点个数n无关的查找方法是( )。

 A、散列查找

 B、顺序查找

 C、二分查找

 D、没有这样的查找方法使得平均查找长度和n无关

解析

散列查找的平均查找长度只跟负载因子有关,而顺序查找平均查找长度是O(n)的,二分查找平均查找长度是O(logn)的

5、一个散列表的散列函数是h(key)=key%19,共有20个槽,用闭散列的线性探查方法。从空表开始,依次进行如下插入删除操作,问这些操作的平均检索长度是()(用整数或分数表示)

操作是:Add 26 Add 25 Add 24 Add 195 Del 26 Add 176

提示:

1.散列表中不能插入两个相同的关键码

2.结果请用一个最简分数数值表示,分号用/表示,例如四分之三写为:3/4

解析

依次检索次数为1,1,1,4,1,5,故总次数1+1+1+4+1+5=13,故平均检索次数为13/6

答案: 13/6

猜你喜欢

转载自blog.csdn.net/wydyd110/article/details/81334459