散列表失败平均查找长度

散列表失败平均查找长度

已知数据长度为L,散列表长度为M,存储公式为H(k)=k%P

k:关键字
P:小于表长M的最大质数

使用线性探测法解决冲突:H[i]=( H(k) + d[i] ) % M

i:对于关键字k的第i次冲突的解决
线性探测法中的d[i] = i (i<m)

成功的平均查找长度是针对已插入表中的L个数据的查找研究,故成功平均查找长度(ASL succeed)应为:
((每个元素的解决冲突次数+1)之和)/L


失败的平均查找长度是针对研究查找失败的,而查找的公式就是H(k)=k%P,故研究查找失败,就是研究对这0~P-1个地址的查找失败的平均和,然后冲突解决方法为线性探测法。所以失败平均查找长度(ASL unsucceed)应为:
((0~P-1个地址,每个地址的最糟糕查找情况)之和)/P
所谓最糟糕的查找情况就是:所有查找都比对失败,每次解决冲突后还是查找失败,直到碰到空地址了,还没找到待查找的k。

例如:
关键字数据为:{19,14,23,1,68,20,84,27,55,11,10,79}
数据长度L=12,表长M=16,选择P=13,H(k)=k%13,冲突解决使用线性探测法。

散列地址0123456789101112131415
关键字14168275519208479231110
冲突次数+1121431139113

ASL(succeed)= (1+2+1+4+3+1+1+3+9+1+1+3)/12

//针对位置0,直接一次比对就能判断查找为空,失败
//针对位置1,每次解决冲突后还是比对失败但是不能确定下一个冲突解决后是否还是失败,故直到位置13为空了,才能确定是失败了,次数为13
//接下来的直到P-1=12的位置,同上
ASL(unsucceed)= (1+13+12+11+10+9+8+7+6+5+4+3+2)/13

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值