Hash 函数、Hash表
来源:互联网 发布:北京亿都川女装淘宝店 编辑:程序博客网 时间:2024/04/28 05:54
Hash函数的随机性越好,数据分布越均匀;数据分布越均匀,冲突就越少;冲突越少,效率就越高。
设计Hash表的关键之一就是处理数据的冲突。
1. 整数的Hash函数
(1)直接取余法 ,h(k) = k mod M
(2)平方取中法 ,h(k) = r (k2 ),其中r()表示取k2 的中间r位。
如:
n r = 4, k = 100
n k = (1100100) 2
n k 2 = (10011 1000 10000) 2
n h(k) = (1000) 2 = 8
(3) 乘积取整法 ,用 k 乘以一个 (0,1) 中的无理数 A , 取出小数部分,乘以 M ,再取出整数部分作为 h(k)
如:
n k = 100, A = 0.61803 … , M = 12
n h(k) = 9
比较这三种方法:
直接取余法: 实现容易 ,效果受 M 影响大
平方取中法 :速度快 ,不容易推广
乘积取整法: M 可以任取,效果好, 速度慢
- Hash 函数、Hash表
- hash查找//hash函数及建表
- 【学习笔记】hash表和hash函数
- Hash表、Hash函数及冲突解决
- Hash表、Hash函数及冲突解决
- hash函数
- hash函数
- hash函数
- hash函数
- Hash函数
- Hash函数
- Hash函数
- hash函数
- hash函数
- Hash函数
- hash函数
- Hash函数
- hash函数
- JPCAP——Java中的数据链路层控制
- BaseSocket类-可以提升Socket数据传输效率
- vc++实现avi文件的操作
- 网易-网站部 测试工程师 笔试【cs】
- 集合
- Hash 函数、Hash表
- 帐户权限和安全设置 (SharePoint Server 2010)
- 突破防火墙技术讲解(一)
- 50句经典语句,不看绝对后悔
- VC给应用程序加上看门狗以及VC中CreateProcess函数用法(转)
- 验证价格类型的正则表达式
- java环境变量设置
- [Socket+AMF3]Socket安全策略问题的解决
- VB 报表设计