按照算法导论的说法,就是利用下公式就行了。
h(k)=floor(m*(kA%1));
据研究发现 A 取(sqrt(5)-1)/2最好。
所以代码实现就相当简单了:
int hash_fun(int key)
{
return (2<<4)*(key*A-floor(key*A));
}
按照算法导论的说法,就是利用下公式就行了。
h(k)=floor(m*(kA%1));
据研究发现 A 取(sqrt(5)-1)/2最好。
所以代码实现就相当简单了:
int hash_fun(int key)
{
return (2<<4)*(key*A-floor(key*A));
}