1、hash法
来源:互联网 发布:linux搭建局域网 编辑:程序博客网 时间:2024/06/03 14:25
1、hash法
1、1 哈希函数的常用构造方法
a、 直接寻址法
直接寻址法,就是将关键字和关键字的线性表达作为哈希值。h(key) = key 或 h(key) = a x key + b.
b、取模法
选取一个p,h(key) = key mod p,p一般取哈希长度
c、折叠法
例如:key=12360324711202065,哈希表长度为1000,则应把关键字分成3位一段,在此舍去最低的两位65,分别进行移位叠加和折叠叠加,求得哈希地址为105和907,如图8.24所示。
1
6
2
1
+)
(a)移位叠加
h(key) = key %p,p一般选取小于和等于表长的质数。
1、2 解决冲突方法
a、开放地址法
意思就是,当哈希值产生冲突的时候,会继续向其他空的地址进行探索。例如,我们算出哈希值为2,但是2已经存在,那么,我们就加1(加其他也可以)也就是3,判断3是否已经存在,如存在则继续探索,否则,就将其存储。
b、再哈希法
意思就是,我们可能有多个哈希函数h1、h2、h3等,当我们通过h1得到的哈希值冲突时,则继续通过h2计算直到不再冲突位置。
c、链地址法(适合冲突比较严重的情况下)
比如,我们有元素{a,b,c,d,e,f,g,h},通过某种哈希函数我们得到哈希值 {0,2,4,1,0,8,7,2}。我们通过链表的形式,将冲突的地方用链表来存储。
d、建立一个公共溢出区
- 1、hash法
- hash(1)
- hash 1
- 1 hash
- 数据结构-Hash法-静态Hash法
- 《数据结构》学习-- Hash(1) --Hash简介
- Hash表(拉链法)
- 开放定址Hash法
- 直接寻址法hash
- Hash开散列 拉链法
- 链接法hash表
- 平方探测法hash
- 线性探测法hash
- php hash 拉链法
- Hash-开放地址法
- Hash算法学习(1)
- Hash表(1)
- hash表原理1
- sharedpreferences的使用方法小结
- spring中scope作用域
- Android调用系统相册的方法
- 抛出异常getOutputStream() has already been called for this response
- 让ListView指定的item获取焦点
- 1、hash法
- git github分支管理
- 第五章:初始化与清理
- 面向对象的表达式计算器
- Map集合按Key和Value分别排序
- 开源 AR 安卓APP:android AR app 开发及源码
- 京东618刘强东狂赚1199亿元 刘强东晒京东加班餐
- 手眼标定中的closed chain
- Python快速入门(4)-列表、元组、字典、集合的使用