哈希表 链地址法平均查找长度

zedzhao 2008-12-05 01:20:15
如何计算链地址法的平均查找长度,还有链地址法是怎么处理冲突的啊?
把指向同一地址的关键字放在一个链表中然后怎么办? 光这样算是处理了冲突的吗?
...全文
4483 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jarvis's 2010-12-23
  • 打赏
  • 举报
回复
计算链地址的平均查找长度
举个例子
如:线性表(38,25,74,63,52,48),采用散列函数为H(key)=key mod 7,将元素散列到表长为7的哈希表中存储。
解法:
首先构造一个哈希表
哈希地址: 0 1 2 3 4 5 6
指针:
按顺序将所给的数据进行计算
因为38mod7=3,所以数据38是属于地址3的
25mod7=4,所以数据25是属于地址4的
74mod7=4,所以数据74也是属于地址4的(这个数据是数据25指针的另一个新数据)
63mod7=0,所以数据63是属于地址0的
52mod7=3,所以数据52是属于地址3的(这个数据是数据38指针的数据)
48mod7=6,所以数据48是属于地址6的
所以就可得平均查找长度:ASL=(4*1+2*2)/6=4/3
once_and_again 2008-12-06
  • 打赏
  • 举报
回复
linear probing
quadratic probing
separate chaining
zedzhao 2008-12-05
  • 打赏
  • 举报
回复
如果按定义来算平均查找长度呢?
怎么算啊?
zxianrong 2008-12-05
  • 打赏
  • 举报
回复
把指向同一地址的关键字放在一个链表中然后怎么办? 光这样算是处理了冲突的吗?

对,这样就解决了冲突,而且链地址法这么设计就是针对冲突比较严重的情况下。
WingForce 2008-12-05
  • 打赏
  • 举报
回复
1 如何计算链地址法的平均查找长度?
取决于hash函数和状态因子,具体来说。。。就是概率论,呵呵


2 链地址法是怎么处理冲突的啊?
把指向同一地址的关键字放在一个链表中然后怎么办?
光这样算是处理了冲突的吗?
查找时,如果发现slot里是个链表,而不是一个单一的值,也就是发生了冲突,那就遍历链表,查找
sagegz 2008-12-05
  • 打赏
  • 举报
回复
看书!数据结构上的书有!

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧