11

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

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

我可以只使用整数的低几位作为哈希吗?

例如 int key = n & 15; 并创建一个包含 16 个插槽的数组来存储它们。

有什么建议吗?

4

2 回答 2

3

你可以在这里看到xxhash

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

例子:

int key = item % size_of_hash_table
于 2012-10-30T16:35:18.477 回答
0

好吧,昨晚我做了一个通用的哈希测试(用 C 语言),它涵盖了几个顶级哈希器和 38 个不同的键。

欢迎大家对其进行基准测试: http ://www.overclock.net/t/1319572/benchmarking-the-fastest-hash-function/0_20#post_18495990

我很高兴在您的帮助下揭示IntelAMD以及Intel 12.1编译器与Microsoft 16 (VS2010) 编译器组合的行为方式。

于 2012-10-31T15:47:05.180 回答