哈希算法 查找失败

散列函数:H(key) = key % 11;

现有数据:1,13,12,34,38,33,27,22

要求:使用 线性探测法 处理冲突

step1:先将所有的数据装入哈希表汇总

1%11 = 1,没有冲突

13%11 = 2,没有冲突

12%11 = 1,下标1的位置上放置了数据1,此时冲突了,使用 线性探测法处理冲突,下标1上已经有数据了,所以往后查,此时下标2上也有数据了,再往下查到下标3,此时下标3上没有数据,将12放在下标3的位置中

34%11 = 1,冲突了,使用线性探测法,计算出地址为4

38%11 = 5,没有冲突

33 % 11 = 0,没有冲突

27 % 11 = 5,冲突,计算出地址为:6 

22 % 11 = 0,冲突,计算出地址为:7

012345678910
33113123438277   

对于查找成功,只需要分别计算单个数据查找成功的次数,因为只有8个数据,所以需要计算8次:

因为没有冲突,只需要查找1次即可

13 没有冲突,只需要查找1次

12 冲突了,原本应该放在下标1的位置,现在放在了下标3的位置,需要查找下标1,2,3,共需要3次

34 冲突,原本放在下标1的位置,现在放在下标4的位置,需查找 4 次

38 没有冲突,查找1次

33 没有冲突,查找1次

27 冲突,原本应该放在下标5的位置,现在放在下标6的位置,需查找2次

22 冲突,原本应该放在下标0的位置,现在放在下标7的位置,需查找8次

ASL = (1+1+3+4+1+1+2+8)/8 = 21/8 = 2.625

 

查找失败:

 对于查找失败,概率都是1/11,因此,0-10每个下标都需要计算,共计算11次,并且查找失败的时候,需要一直查找到第一个为 空 的地址才结束

key = 0,查找失败需要一直查找到 下标为 8 ,因为下标为8的地址为空,共需要9次

key = 1,查找失败需要8次

key = 2,查找失败需要7次

key = 3 ,查找失败需要6次

key = 4,查找失败需要5次

key = 5,查找失败需要4次

key = 6,查找失败需要3次

key = 7,失败需要2次

key = 8,失败需要1次

key = 9,失败需要1次

key = 10,失败需要1次

ASL = (9+8+7+6+5+4+3+2+1+1+1)/11 = 47/11

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值