0
点赞
收藏
分享

微信扫一扫

hash 是什么

可以很简单的理解为“摘要”

就是将一段数据映射到有限长度的数据,比如说原数据是一段非常长的字符串m,那么hash的数字h就代表的该字符串。

hash值是怎么产生的

对m进行计算(进行有损压缩)并输出为一个固定长度的值

hash碰撞

由不同的原始数据压缩时产生了相同的结果,生成的hash值一致

hash碰撞的解决方案

Probing , 在array找出一个空的位置。

试想如果我们计算10个元素的hash值都一样,那么每次存放和读取都会发生Probing,读取时间就会变成最高Ο(n)复杂度。

一个简单的策略是,当字典中存放的元素超过70%,就扩大字典体积。

Hash 攻击

即重复发送相同hash值的原数据,这样会导致耗时很大,由于每一次的插入都会造成hash碰撞,从而hash table将会退化为链表

Reference

https://www.zhihu.com/question/26762707

https://www.kawabangga.com/posts/2493

http://www.laruence.com/2011/12/30/2435.html


想要看到更多玮哥的学习笔记、考试复习资料、面试准备资料?想要看到IBM工作时期的技术积累和国外初创公司的经验总结?

敬请关注:

玮哥的博客 —— CSDN的传送门

玮哥的博客 —— 简书的传送门

玮哥的博客 —— 博客园的传送门

举报

相关推荐

0 条评论