当前位置:
首页 >
散列函数设计:除留余数法
发布时间:2023/12/14
56
豆豆
生活随笔
收集整理的这篇文章主要介绍了
散列函数设计:除留余数法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
散列函数设计:除留余数法
转载地址
感谢分享
除留余数法介绍
除留余数法此方法为最常用的构造散列函数方法。对于散列表长为m的散列函数公式为:
mod是取模(求余数)的意思。事实上,这方法不仅可以对关键字直接取模,也可在折叠、平方取中后再取模。
一个例子
有一个关键字,它有12个记录,现在我们要针对它设计一个散列表。如果采用除留余数法,那么可以先尝试将散列函数设计为f(key) = key mod 12的方法。比如29 mod 12 = 5,所以它存储在下标为5的位置。
不过这也是存在冲突的可能的,因为12 = 2×6 = 3×4。如果关键字中有像18(3×6)、30(5×6)、42(7×6)等数字,它们的余数都为6,这就和78所对应的下标位置冲突了。
但是我们如果不选用p=12来做除留余数法,而选用p=ll,则结果如下:
这个时候就只有12和144有冲突,相对来说,就要好很多了。
如何合理选取p值
总结
以上是生活随笔为你收集整理的散列函数设计:除留余数法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Linux BT下载(2)-B编码和种子
- 下一篇: Session存放token/获取tok