具有字符串和整数作为键的哈希表的哈希函数

时间:2013-05-08 00:37:59

标签: c hashtable hash-function

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

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

这样做有什么好的功能吗?

谢谢:)

3 个答案:

答案 0 :(得分:0)

如果存在,则使用整数值&合理地分布,然后散列字符串,如果不是。整数哈希码比String更便宜。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

由于你想使用两个键进行哈希,我假设使用两个键改进了分布。

对于字符串哈希,我用PJW算法得到了很好的结果。只需谷歌“PJW Hash String”。一种变体here 使用整数see here

扩充哈希值