【发布时间】:2010-09-07 06:27:22
【问题描述】:
什么是好的哈希函数?我在大学的数据结构课程中看到了很多散列函数和应用程序,但我大多都知道要制作一个好的散列函数非常困难。根据经验,为了避免碰撞,我的教授说:
function Hash(key)
return key mod PrimeNumber
end
(mod 是 C 和类似语言中的 % 运算符)
用素数作为哈希表的大小。我知道这是避免碰撞和快速的一个很好的功能,但是我怎样才能做出更好的功能呢?字符串键对数字键有更好的哈希函数吗?
【问题讨论】:
-
您是否考虑过使用以下一种或多种通用哈希函数:partow.net/programming/hashfunctions/index.html
-
在fnv_func中,p[i]的类型是char,第一次迭代后h会发生什么?是故意的吗?
-
@martinatime 说:在维基百科en.wikipedia.org/wiki/Hash_function 中有大量关于哈希函数的信息,本文底部partow.net/programming/hashfunctions/index.html 有各种语言实现的算法。
标签: algorithm language-agnostic hash