哈希与多级哈希

本文总结了哈希及其多级哈希的概念,包括哈希的计算方法、冲突解决策略,以及多级哈希的特点、应用场景和优化方法。多级哈希通过逐行处理冲突,适用于高并发和快速查找的场景。
摘要由CSDN通过智能技术生成

最近接触到的项目有用到多级哈希做缓存,趁现在有时间,学习并总结一下哈希方面的知识。

一、哈希。

参考学习资料:

http://www.cnblogs.com/waytofall/archive/2012/06/04/2534386.html

http://www.cnblogs.com/egmkang/archive/2012/01/18/2325474.html

http://blog.sina.com.cn/s/blog_6cf921f301015cuw.html

使用:1.哈希值计算方法。 2 比较与匹配方法。

解决冲突的好方法:

1.开链法,用链表保存冲突值。

2.开放地址法,用桶的概念,每个桶存k个元素。冲突的放在这相邻的元素里。  优点是快(缓冲中相邻地址命中率高),缺点是有可能冲突太多存不了。

STL中的hash_map好像是用方法2实现的。。(使用时一定要构建足够的桶数量。)


二、多级哈希

参考学习资料:

http://ahfuzhang.blogspot.com/2012/09/hash.html

https://software.intel.com/zh-cn/articles/hash

特点:

1.二维数组的方式,每一行的个数都是素数。且数量逐行减少。

2.每个桶只存一个元素,用一维数组来具体实现二维的感觉。

3.冲突处理简单,逐行往下处理。

4.实现简单,扩展性强,当无法插入数据时,只需要继续增加阶数即可。

5.查询快速

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值