Chinaunix

标题: 我怎么觉得"全域散列"是不可能做到的,大家斧正。 [打印本页]

作者: donet8    时间: 2012-07-21 10:02
标题: 我怎么觉得"全域散列"是不可能做到的,大家斧正。
《算法导论》的第11章,"全域散列"是这样定义的:
在计算散列值的时候,为了尽量避免冲突,采用一族散列函数,每次随机的取一个,构造散列表。
-----------------------------------------------------------------------------------------
问题是: 查找的时候,我怎么知道应该选择哪个散列函数,算出来的才是构造时候的h(x)呢? 对于查找而言,我们是不知道,构造散列表的时候,哪些x对应哪些key啊。
作者: _Rayx    时间: 2012-07-21 10:16
回复 1# donet8


    构造散列值的函数与后面查找的时候构造散列值的函数是同一个。
   至于有冲突,这是不可避免的,所以才有各种解决办法,建议仔细看书,这些书上都讲得很明白了。
作者: yulihua49    时间: 2012-07-21 10:47
本帖最后由 yulihua49 于 2012-07-21 10:54 编辑
donet8 发表于 2012-07-21 10:02
《算法导论》的第11章,"全域散列"是这样定义的:
在计算散列值的时候,为了尽量避免冲突,采用一族散列函数 ...

每次不应该随机取一个,而是根据规则取一个,检索时相同。
我认为没必要这样。
普通的单散列弄好了散列冲突可以达到能接受的水平。
作者: donet8    时间: 2012-07-22 14:03
_Rayx 发表于 2012-07-21 10:16
回复 1# donet8



我的问题是,构造的时候用了多个散列函数。

那么查找的时候,我怎么知道应该用哪个散列函数呢?
作者: hx970655147    时间: 2016-01-01 11:58
散列函数存放在一个集合中, 每一个元素的卫星数据中增加一个散列使用的散列函数的索引的数据项




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2