(4)散列函数设计:除留余数法
来源:互联网 发布:淘宝客入门视频教程 编辑:程序博客网 时间:2024/05/29 13:41
除留余数法介绍除留余数法此方法为最常用的构造散列函数方法。对于散列表长为m的散列函数公式为:
f( key ) = key mod p ( p ≤ 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值
使用除留余数法的一个经验是,若散列表表长为m,通常p为小于或等于表长(最好接近m)的最小质数或不包含小于20质因子的合数。
0 0
- (4)散列函数设计:除留余数法
- (4)散列函数设计:除留余数法
- 散列函数设计:除留余数法
- 除留余数法实现简单hash函数
- HashMap (除留余数+拉链法)
- 哈希表的实现 除留余数法
- 等式数量--hash算法之除留余数法
- 数据结构---哈希表(KV模式)(除留余数法)
- 实现哈希表查找(除留余数法)
- 数字电路设计之恢复余数除法器的verilog实现
- 数据结构 c语言实现哈希(hash)表查找 除留余数法构建hash函数开放定值法线性探测处理冲突
- 【除留余数法定义hash函数+线性探测法解决hash冲突】数据结构实验之查找七:线性之哈希表
- 【除留余数法定义hash函数+平方探测法解决hash冲突】数据结构实验之查找五:平方之哈希表
- 哈希表之除留余数法+线性探测法,链地址法,公共溢出区法
- 数据结构之HashTable(除留余数法—链地址法)
- 除留余数法实现哈希表,开vector法解决冲突
- nyoj-138-找球号(二)----hash算法之除留余数法+vector
- 【哈希表除留余数法+BSGS算法求离散对数】POJ Discrete Logging 2417
- (3)散列函数设计:直接定址法
- tomcat+memcached集群
- 用 Swift、Foursquare API 和 Realm 創建一個咖啡屋 App
- 【COCOS CREATOR 系列教程之二】脚本开发篇&事件监听、常用函数等示例整合
- linux yum命令详解
- (4)散列函数设计:除留余数法
- ROS 运动规划 (Motion Planning): MoveIt! 与 OMPL
- ftruncate函数详解
- android 控件布局
- (5)散列冲突处理:开放定址法
- 说说标签算法在视频推荐的那些事儿
- ios推送相关
- hdu 2098 分拆素数和
- Git的安装与使用