Hash算法

Posted 互联网后端架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hash算法相关的知识,希望对你有一定的参考价值。

概述


基本概念




哈希函数的构造方法


1. 直接寻址法

2. 数字分析法

3. 平方取中法

4. 分段叠加法

5. 除留余数法

  假设哈希表长为m,p为小于等于m的最大素数,则哈希函数为h(k)=k % p ,其中%为模p取余运算。

6. 伪随机数法

  采用一个伪随机函数做哈希函数,即h(key)=random(key)。







处理冲突的方法


  通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致。下面以创建哈希表为例,说明解决冲突的方法。常用的解决冲突方法有以下四种:

1. 开放定址法

2. 再哈希法

3. 链地址法

4. 建立公共溢出区

  这种方法的基本思想是:将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。


以上是关于Hash算法的主要内容,如果未能解决你的问题,请参考以下文章

HASH算法简介

什么是hash?

常用分享--HASH算法解析

hash一致算法原理

hash算法与一致性hash

一致性hash算法,采用哪种算法实现比较好,比如MD5,CRC32,或者其它