有关算法导论中全域散列函数的疑问

zc198801 2010-08-08 07:48:53
小弟最近在看算法导论,有关散列表中全域散列函数有点疑问,
以140页 “设计一个全域散列函数类为例”
书上写的 ha,b(k) = ((ak+b) mod p) mod m
请问 a,b是如何生成的,如果是每次插入散列表时调用随机函数生成的,那么在查找时如何查找?
换句话说,在查找的时候,肯定还要生成新的a,b,但是新生成的a,b和原来插入时a,b不同了,如何查找原来a,b生成的关键字呢?
如果是在散列表初始化的时候用随机函数生成的,那么这样a,b都定下了,哪来下文中 "Hp,m中共有p(p-1)个散列函数"之说?(因为a,b都定死了)

求达人解惑~
...全文
181 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zc198801 2010-08-08
谢谢gogdizzy,原来的理解有点问题,网上曾经看了一段这个相关的代码,感觉被误导了
回复
当然是定死的,他是告诉你a,b都可以取哪些值,但是一旦你取了,以后就都要用一样的,否则当然就乱了。
回复
zc198801 2010-08-08
自己顶一下,没人来回答么
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告