Hash 哈希表实现的哈希算法

Hash 哈希表实现的哈希算法,hash,hashmap,hashtable,Hash,Hashmap,Hashtable,我正在寻找一个具有良好(即接近均匀)分布的高速哈希函数,用于哈希表实现 哈希表将专门用于存储具有整数键的值 我能用整数的低位作为散列吗 e、 g int key=n&15;并创建一个包含16个插槽的阵列来存储它们 有什么建议吗?你可以在这里看到 您提到的哈希函数非常快,但也非常糟糕。 如果你想要一个“愚蠢”的散列函数,你可以考虑模数。< /P> 例如: int key = item % size_of_hash_table 昨晚我做了一个多功能的散列测试(C),它涵盖了几个顶级散列器和38个不

我正在寻找一个具有良好(即接近均匀)分布的高速哈希函数,用于哈希表实现

哈希表将专门用于存储具有整数键的值

我能用整数的低位作为散列吗

e、 g int key=n&15;并创建一个包含16个插槽的阵列来存储它们

有什么建议吗?

你可以在这里看到

您提到的哈希函数非常快,但也非常糟糕。 如果你想要一个“愚蠢”的散列函数,你可以考虑模数。< /P> 例如:

int key = item % size_of_hash_table

昨晚我做了一个多功能的散列测试(C),它涵盖了几个顶级散列器和38个不同的键

欢迎大家在以下位置对其进行基准测试:


我很高兴在您的帮助下,向您展示英特尔与AMD以及英特尔12.1编译器与微软16(VS2010)编译器组合的性能。

没有完美的哈希函数。但是,如果您想要一些具有相应源代码的算法,请参见此处:获取最低位可能是最糟糕的做法。(但是:这完全取决于您在int键中期望的值的范围)尝试混合高位,或者与足够大的(奇数、素数)数相乘。知道该期待什么并衡量它。把你的评论作为一个答案,我会接受的。