常见算法及问题场景——散列(哈希)

本文探讨了哈希函数的定义、评价体系,强调了冲突对效率的影响及处理策略,包括继续查找、链表法和公共溢出区。介绍了哈希在字符串、加密、信息摘要和几何匹配中的应用,并提到了布隆过滤器的特性及其在空间效率和查询时间上的优势。
摘要由CSDN通过智能技术生成

定义

哈希函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度来看,哈希函数之间性能、质量等方面的比较,可以通过其在伪随机生成质量方面的比较来衡量。

评价体系:

1、泊松分布可以用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。
2、算法复杂度,以及运行时间。
3、位偏向。哈希函数生成随机位序列时,产生高、低位的位偏向应该各为50%。
4、完美的哈稀函数不存在,只能寻找特定数据集上最满意的函数。

冲突

1、冲突会影响效率。
2、三个影响冲突的因素:散列函数是否均匀、处理冲突的方法、散列表的装填因子(填入表中的元素个数 / 散列表的长度)。
3、常见冲突处理方案:继续寻找下一个散列地址、在当前位置使用链表保存、建立公共溢出区。

指导思想

1、对数据进行哈希操作,如加法、乘法、移位等操作变换,来产生哈希值。
2、无法证明素数的参与会使哈希操作的结果熵更大,但事实这么做确定取得了不错的结果。

常用算法

字符串哈希

MD4、MD5、SHA-1等。
用于数据索引,或结构化支撑,如哈希表。

加密

数据库中密码存放。

信息摘要

防止信息在传输过程中被篡改

几何哈希

一种图像匹配算法。
可参考:基于Harris和几何哈希法的目标匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值