计算哈希表查找成功和失败时的平均查找长度(实例)

上课没好好听讲,写题目的时候不会算这两个,搞了一晚上终于搞懂了,大家看看我理解的对不对

                                                                   题目

(1)第一问的过程直接贴上来了

(2)查找成功的平均查找长度:

 由题(1)可知

查找数字47,查找成功长度为1

查找数字7,查找成功长度为1

查找数字29,查找成功长度为2

查找数字11,查找成功长度为1

查找数字16,查找成功长度为1

查找数字92,查找成功长度为1

查找数字22,查找成功长度为2

查找数字8,查找成功长度为2

查找数字3,查找成功长度为4

查找成功的平均查找长度=1+1+2+1+1+1+2+2+4)/9=5/3(除数9是查找的元素个数

查找不成功的平均查找长度:

失败的查找次数就是该位置向后的第一个没有关键字的位置之间的距离

地址0到地址2的距离为  3(地址2是地址0向后第一个没有关键字的位置)

地址1到地址2的距离为  2(地址2是地址1向后第一个没有关键字的位置)

地址2到地址2的距离为  1(地址2是地址2向后第一个没有关键字的位置)

地址3到地址10的距离为  8(地址10是地址3向后第一个没有关键字的位置)

地址4到地址10的距离为  7(地址10是地址4向后第一个没有关键字的位置)

地址5到地址10的距离为  6(地址10是地址5向后第一个没有关键字的位置)

地址6到地址10的距离为  5(地址10是地址6向后第一个没有关键字的位置)

地址7到地址10的距离为  4(地址10是地址7向后第一个没有关键字的位置)

地址8到地址10的距离为  3(地址10是地址8向后第一个没有关键字的位置)

地址9到地址10的距离为  2(地址10是地址9向后第一个没有关键字的位置)

地址10到地址10的距离为  1(地址10是地址10向后第一个没有关键字的位置)

查找不成功的平均查找长度=(3+2+1+8+7+6+5+4+3+2+1)/11=42/11(除数11是指题目中的

key mod 11的11)

(3)在看一个链地址法表示的哈希表

查找成功的平均查找长度:

查找1次成功的有6个(红色笔圈起来的第一列的元素)

查找2次成功的有3个(蓝色笔圈起来的第二列元素)

查找成功的平均查找长度=(1×6+2×3)/9=4/3(除数9是查找的元素个数)

查找不成功的平均查找长度:

如图解所示

地址0查找不成功的次数是3次

地址1查找不成功的次数是1次

地址2查找不成功的次数是1次

...............................................

地址10查找不成功的次数是1次

查找不成功的平均查找长度=(3+1+1+3+2+2+1+3+2+1+1)/11=20/11(除数11是指题目中的

key mod 11的11)

——————————————————————————————————————————

ps:有错误欢迎指正,此篇只指出一些解题思路供大家参考。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值