1

我正在寻找一个可以在哈希表实现中使用的好的哈希函数。问题是我想在我的哈希函数中同时提供字符串和整数作为参数(键) 。

我有一个包含约 500 个数据的 txt 文件,其中每一个都包含整数和字符串(最多 15 个字符)。所以,我想做的事情是选择这些整数/字符串之一并将其用作我的哈希函数的键,以便将我的数据放入“正确的”存储桶中。

有什么好的功能可以做到这一点吗?

谢谢 :)

4

3 回答 3

0

如果存在且分布合理,则使用整数值,如果不存在则散列字符串。整数哈希码的计算比字符串便宜得多。

显然,该算法必须是可重复的。

于 2013-05-08T00:48:36.840 回答
0

你的问题有点含糊。目前尚不清楚您的数据集是否有 500 列,并且您正在尝试找出用于散列的列,或者它是否有 500 个要散列的项目。

如果您正在寻找能够产生分布良好的哈希值的体面的通用哈希,您可能需要查看具有字符串和整数变体的Jenkins 哈希函数。但是,坦率地说,如果您的数据集有 500 个固定项,您可能希望查看一个完美的哈希函数生成器,例如GNU gperf,甚至取决于您的数据的替代数据结构。

于 2013-05-08T00:57:45.763 回答
0

由于您想使用两个键进行散列,我认为使用两个键可以改善分布。

对于字符串散列,我使用 PJW 算法取得了不错的效果。只需谷歌搜索“PJW 哈希字符串”。此处的一种变体 要使用整数增加散列,请参见此处

于 2013-05-08T00:57:53.400 回答