C 使用字符串和整数作为键的哈希表的哈希函数

C 使用字符串和整数作为键的哈希表的哈希函数,c,hashtable,hash-function,C,Hashtable,Hash Function,我在寻找一个好的哈希函数,我可以在哈希表实现中使用。问题是,我想在哈希函数中同时给出字符串和整数作为参数(键) 我有一个包含500个数据的txt文件,每个文件都由整数和字符串组成(最多15个字符)。因此,我想做的事情是选择这些int/字符串中的一个,并将其用作哈希函数的键,以便将数据放入“正确”的存储桶中 有什么好的功能可以做到这一点吗 谢谢:)如果整数值存在且分布合理,则使用整数值,如果不存在,则散列字符串。整数哈希代码的计算比字符串便宜得多 显然,算法必须是可重复的。你的问题有些模糊。不清楚

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

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

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


谢谢:)

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


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

你的问题有些模糊。不清楚您的数据集是否有500列,您是否正在尝试确定使用哪一列进行散列,或者是否有500项要进行散列


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

由于您希望使用两个键进行哈希,我假定使用两个键可以改进分布

对于字符串哈希,我使用PJW算法得到了很好的结果。只需谷歌搜索“PJW哈希字符串”。一种变体
要使用整数来扩充散列,

它有500个项目,我想通过使用字符串和int键来散列这些项目使用我链接到的Jenkins散列。应该很好。