哈希算法
2016-08-10 11:45
169 查看
哈希算法
哈希表
1. 基本原理定义
散列表(Hash table,也叫哈希表):是根据关键码值(Key value)而直接进行访问的数据结构
散列函数:散列表通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,儿这个映射函数叫做散列函数
2. 哈希函数构造
常用方法:直接寻址法,除余法,数字分析法,平方取中法,折叠法,随机数法
3. 冲突处理
开放寻址法: Hi=(H(key) + di) MOD m,i=1,2,…,k(k<=m-1),其中H(key)为散列函数,m为散列表长,di为增量序列
线性探测再散列: di=1,2,3,…,m-1,顺序查看表的下一单元,直至找到某个空单元,或查遍全表。
二次探测再散列: di=1^2,-1^2,2^2,-2^2,⑶^2,…,±(k)^2,(k<=m/2),在表的左右进行跳跃式探测
伪随机探测再散列: di=伪随机数序列,根据产生的随机数进行探测
再散列法: 建立多个hash函数,若是当发生hash冲突的时候,使用下一个hash函数,直到找到可以存放元素的位置。
拉链法(链地址法): 就是在冲突的位置上简历一个链表,然后将冲突的元素插入到链表尾端
建立公共溢出区: 将哈希表分为基本表和溢出表,将与基本表发生冲突的元素放入溢出表中
4. 性能分析
优势:数据的存储和查找消耗的时间很少,接近常数时间O(1)。
缺陷:消耗内存大。
相关文章推荐
- 哈希算法(Hash Algorithm)初探
- 几个比较著名的哈希算法
- [ASP.NET4之旅]默认加密与哈希算法的改变
- 魔兽哈希算法封装和测试
- 对等网络(P2P)中主流分布式哈希算法比较分析
- 哈希算法
- 重新想象 Windows 8 Store Apps (31) - 加密解密: 哈希算法, 对称算法
- 一个好用的8字节哈希算法
- 题目1431:Sort(哈希算法)
- Anagram --- 哈希算法
- 哈希算法
- 阿里巴巴的分布式应用框架-dubbo负载均衡策略--- 一致哈希算法
- Kafka中基于byte[]的murmur2 哈希算法实现
- 局部敏感哈希算法
- iOS sha1加密方法(哈希算法,用于校验数据完整性)以及字符串中含有汉字的情况的加密方法
- HashMap 哈希算法
- 哈希算法
- 哈希表&哈希算法
- 区块链中的密码学技术——哈希算法、Merkle树、公钥密码算法