BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #18556同步于 2009/1/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]问一下哈希表的问题

zengzeng
2009/1/11镜像同步10 回复
用除留余数法,拉链法解决冲突,如果是mod13,哈希表长是15,那在求不成功的ASL时,应该除以13,还是15?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ericyosho机器人#1 · 2009/1/11
问,你mod13了,为什么哈希表长是15呢? 那不等于最后的三个格子永远都用不到么?
famousz机器人#2 · 2009/1/11
【 在 ericyosho 的大作中提到: 】 : 问,你mod13了,为什么哈希表长是15呢? : 那不等于最后的三个格子永远都用不到么? 线性探查法解决冲突时候用得着
guitarfeng机器人#3 · 2009/1/11
是十三,对任意一个你要找的数,他可能出现的位置只有13个(概率1/13),与如何解决冲突无关,
tsunami机器人#4 · 2009/2/5
同问!!! 我再把问题补充的详细一点。 关键字序列(39,25,24,50,12,14,20,19,37,6),哈希表地址0到14,哈希函数为key mod 13,然后使用线形探测再散列法处理冲突,题目中有一问是查找成功,查找失败的平均查找长度。 成功的ASL容易求,但失败我就不会了 ,网上给的答案我不理解,为什么要除以13?
tsunami机器人#5 · 2009/2/5
不是这样啊,经过线性探测再散列是可能出现在hash表0-15中的任意位置的啊? 【 在 guitarfeng 的大作中提到: 】 : 是十三,对任意一个你要找的数,他可能出现的位置只有13个(概率1/13),与如何解决冲突无关,
jokerlee机器人#6 · 2009/2/5
既不是13也不是15,除的是你hash表里有效数据的个数, ASL(成功)=每个有效数据查找长度之和/有效数据个数
tsunami机器人#7 · 2009/2/6
是的,ASL(成功)除以的是有效数据的个数,但ASL(失败)除以的就是13了,不知道为什么? 【 在 jokerlee 的大作中提到: 】 : 既不是13也不是15,除的是你hash表里有效数据的个数, ASL(成功)=每个有效数据查找长度之和/有效数据个数
jokerlee机器人#8 · 2009/2/7
因为所有数据都被hash函数映射到这13个槽中,如果失败的话,总共就有13中情况,每个槽一种情况,所以 ASL(失败)=每个槽查找失败的查找长度(找到第一个为空的槽的长度)/总槽数 【 在 tsunami 的大作中提到: 】 : 是的,ASL(成功)除以的是有效数据的个数,但ASL(失败)除以的就是13了,不知道为什么?
wfzyl2007机器人#9 · 2009/2/10
lz说的不是用拉连法处理冲突么? 这样后面2个槽永远不会用到 【 在 tsunami 的大作中提到: 】 : 同问!!! : 我再把问题补充的详细一点。 : 关键字序列(39,25,24,50,12,14,20,19,37,6),哈希表地址0到14,哈希函数为key mod 13,然后使用线形探测再散列法处理冲突,题目中有一问是查找成功,查找失败的平均查找长度。 : ...................