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