免费版:华文慕课-数据结构检索题库
网络课课后题
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,散列表长度为12 / 0.6 = 20,小于20的最大质数为19。
2、有两个整数的集合A,B,大小分别为n,m=O(log(n)),由顺序表存储,并且已经排好序,现在要求他们的交集,请问你设计的高效算法的复杂度是:
A、n |
B、 |
C、 |
D、 |
枚举每个集合B中的元素,去集合A中寻找是否存在相同的元素。枚举集合B的复杂度是logn,遍历集合A可以用二分查找,复杂度是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
一共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
26/19=1...7
25/19=1...6
24/19=1...5
195/19=10...5
176/19=9...5
答案: 13/6