版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/
除留除留余数法p取值法此方法为最常用的构造散列函数方法对于散列表长为m的散列函数公式为:
mod是取模(求除留余数法p取值)的意思。事实上这方法不仅可以对关键字直接取模,也可在折叠、
很显然本方法的关键就在于选择合适的p, p如果选得鈈好,就可能会容易产生同义词
下面我们来举个例子看看:
有一个关键字,它有12个记录现在我们要针对它设计一个散列表。如果采用除留除留余数法p取值法
它存储在下标为5的位置。
的下标位置冲突了
使用除留除留余数法p取值法的一个经验是,若散列表表长为m通常p為小于或等于表长(最好接近m)的最小质数或不包含小于20质因子的合数。
这句话怎么理解呢要不这样吧,
我再举个例子:某散列表的长度為100散列函数H(k)=k%P,则P通常情况下最好选择哪个呢?
实践证明当P取小于哈希表长的最大质数时,产生的哈希函数较好我选97,因为它是离长度徝最近的最大质数