设哈希函数H(key)=key MOD 13,用线性探测再散列法解决冲突.

设哈希函数H(key)=key MOD 13,用线性探测再散列法解决冲突。对关键字序列{ 55,19,01,68,23,27,20,84 }在地址空间为0-10的散列区中建哈希表,画出此表,并求等概率情况下查找成功时的平均查找长度。

ASLsucc = (1 + 2 + 1 + 2 + 1 + 1 + 3 + 1) / 8 = 1.5

10%11=10 a[9]=10

8%11=8 a[7]=8

46%11=2

23%11=1 a[0]=23

19%11=8

56%11=1

21和10冲突且a[10]空,所以a[10]=21

46和57冲突 且a[2]空 所以 a[2]=46

19和8冲突 且a[8]空 所以 a[8]=19

56和23冲突 且a[1]、a[2]不空,daoa[3]空 a[3]=56

最后是23,57,46,56,27,空,40,8,19,10,21,空,空

查找成功的平均长度:6*1+3*2+1*3=15

查找不成功的平均长度:6+5+4+3+2+1+6+5+4+3+2+1=42

扩展资料:

冲突:在哈希表中,不同的关键字值对应到同一个存储位置的现象。即关键字K1≠K2,但H(K1)= H(K2)。均匀的哈希函数可以减少冲突,但不能避免冲突。发生冲突后,必须解决;也即必须寻找下一个可用地址。

将关键字分割成位数相同的几部分(最后一部分的位数可以不同),然后取这几部分的叠加和(舍去进位)作为哈希地址,这方法称为折叠法。

例如:每一种西文图书都有一个国际标准图书编号,它是一个10位的十进制数字,若要以它作关键字建立一个哈希表,当馆藏书种类不到10,000时,可采用此法构造一个四位数的哈希函数。

参考资料来源:百度百科-哈希函数

温馨提示:答案为网友推荐,仅供参考
相似回答