哈希与多级哈希

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

一、哈希。

参考学习资料:

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.查询快速

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值