JasonWang's Blog

常用哈希函数C实现

哈希函数(hash function)是一个将某个集合内的元素映射到一个大小固定的元素集合的函数,其在数据查找、数据去重等方面有着许多的应用。这里,就来看看常用的一些哈希函数是如何来实现的。

0. RsHash

最简单的一种Hash函数实现方法,来自于Rober Sedgwicks的C语言算法书:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

unsigned int RsHash(const char* str, unsigned int len){
unsigned int b = 378551;
unsigned int a = 63689;
unsigned int hash = 0;

for(int i = 0; i < len; ++i){
hash = hash * a + (*str++);
a *= b;
}

return hash;
}