我们已经看到,散列表长度M是影响散列效果的重要因素之一。为保证散列映射的均匀性和随机性,M的取值,应能避免后续查询和修改操作可能的非随机性。试说明:就以上意义而言,表长不宜取作M=2k(k≥2)。
第1题
(1)设计散列表的类。
(2)设计在散列表中搜索具有指定关键码值表项的算法.
(3)设计在散列表中册除具有指定关键码值表项的算法.
(4)设计在散列表中插人具有指定关键码值表项的算法。
(5)设计出一组关键码值建立散列表的算法。
(6)设计输出散列表的算法。
(7)求搜索成功时的平均搜紫长度的算法。
(8)求搜索不成功时的平均搜索长度的算法。
第2题
设散列表为,即表的大小为m=13。现采用双散列法解决冲突。散列函数和再散列函数分别为:
其中,函数Rev(x)表示颠倒10进制数x的各位,如Rev(37)=73,Rev(7)一7等。若插入的关键码值序列为(2,8,31,20,70,59,25,28)。
(1)试画出插人这8个关键码值后的散列表。
(2)计算搜索成功的平均搜索长度。
第3题
(1)k1的探查序列:___30___,________,________,________,
(2)k2的探查序列:___28___,________,________,________,
(3)k3的探查序列:________,________,________,________,
第4题
设α是散列表的装钱因子,则应用双散列法解决冲突时的搜索成功的平均搜索长度和搜索不成功的平均搜索长度分别为:(请根据题意选用合用的公式)
第5题
A、O(1)
B、O(n)
C、O(log2n)
D、O(n2)
第6题
(1)散列表的大小应该是多少?
(2)如果散列函数采用除留余数法,写出散列两数的定义;
(3)若已有的8个记录分别为(58,87,38,95,49,75,64,47),依次将它们存放到表中;
(4)计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
第7题
散列表A[10]中,若采用线性探查方法解决冲突,则在该散列表上进行等概率成功搜索的平均搜索长度为()。
A、2.60
B、3.14
C、3.71
D、4.33
第8题
y为整数),这些函数能够当作散列函数吗(即对于插入和查找,散列程序能正常工作吗)?如果能够,它是一个好的散列函数吗?请说明理由。设函数random(m)返回一个0到m-1之间的随机整数(包括0与m-1在内)。
(1)Hash(key)==key/m;
(2)Hash(key)=1;
(3)IIash(key)==(key+random(m))%rn;
(4)Hash(key)=key%p(m);其中p(m)是不大于m的最大素数。
第9题
第10题
101003245581263292004000
(1)散列函数采用除留余数法,用%m(取模运算)将各关键码映像到表中。请指出每一个产生冲突的关键码可能产生多少次冲突。
(2)散列函数采用先将关键码各位数字折叠相加,再用%m将相加的结果映像到表中的办法。请指出每一个产生冲突的关键码可能产生多少次冲突。