Hash冲突的解决--暴雪的Hash算法
2013-09-09 16:07
471 查看
今天上网的时候看到了这种算法,简单记录一下。
普通的hash解决hash冲突的方法是使用链表,比如java中的HashMap。HashMap中只使用了一次hash,但暴雪hash算中用到了三个hash,三个hash都重叠的概率有多大?1:18889465931478580854784,一般的应用里怎么都够用了。
简单描述一下算法过程,其实很简单,也懒得去写代码了。
计算出字符串的三个哈希值(一个用来确定位置,另外两个用来校验)
察看哈希表中的这个位置
哈希表中这个位置为空吗?如果为空,则肯定该字符串不存在,返回-1。
如果存在,则检查其他两个哈希值是否也匹配,如果匹配,则表示找到了该字符串,返回其Hash值。
移到下一个位置,如果已经移到了表的末尾,则反绕到表的开始位置起继续查询
看看是不是又回到了原来的位置,如果是,则返回没找到
回到3。
普通的hash解决hash冲突的方法是使用链表,比如java中的HashMap。HashMap中只使用了一次hash,但暴雪hash算中用到了三个hash,三个hash都重叠的概率有多大?1:18889465931478580854784,一般的应用里怎么都够用了。
简单描述一下算法过程,其实很简单,也懒得去写代码了。
计算出字符串的三个哈希值(一个用来确定位置,另外两个用来校验)
察看哈希表中的这个位置
哈希表中这个位置为空吗?如果为空,则肯定该字符串不存在,返回-1。
如果存在,则检查其他两个哈希值是否也匹配,如果匹配,则表示找到了该字符串,返回其Hash值。
移到下一个位置,如果已经移到了表的末尾,则反绕到表的开始位置起继续查询
看看是不是又回到了原来的位置,如果是,则返回没找到
回到3。
相关文章推荐
- Hash冲突的解决--暴雪的Hash算法
- Hash冲突的解决--暴雪的Hash算法
- 解决Hash碰撞冲突方法总结
- Hash冲突解决
- 【java基础 10】hash算法冲突解决方法
- Hash算法解决冲突的方法
- hash 冲突及解决办法。
- HashMap解决hash冲突的方法
- 链表法HashMap解决hash冲突的方法
- Hash算法冲突解决方法分析
- Hash学习(3)-冲突的解决
- 解决Hash冲突学习随笔
- hash冲突解决常用方法(转)
- Hash算法冲突解决方法分析
- 解决hash冲突的方法
- Hash学习(3)-冲突的解决
- Hash算法冲突解决方法分析
- 解决哈希(HASH)冲突的主要方法
- 解决哈希(HASH)冲突的主要方法
- 解决hash冲突的方法