哈希算法

哈希算法

这里写图片描述
哈希表
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)。
缺陷:消耗内存大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值