请问为什么在DJB哈希函数中使用数字5381?
DJB哈希函数定义如下:
h 0 = 5381
h i = 33h i - 1 + s i
以下是C语言实现代码:
unsigned int DJBHash(char* str, unsigned int len)
{
unsigned int hash = 5381;
unsigned int i = 0;
for(i = 0; i < len; str++, i++)
{
hash = ((hash << 5) + hash) + (*str);
}
return hash;
}