2013-05-08 30 views
1

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

我有〜500个数据一个txt文件,并将它们中的每一个由整数和字符串(最多15个字符)的。所以,我想要做的事情是选择这些ints/strings中的一个,并将其用作我的哈希函数的关键字,以便将数据放入“正确”的桶中。

有没有什么好的功能来做到这一点?

谢谢:)

回答

0

使用的整数值,如果这就是目前&合理地分配,那么哈希字符串,如果它不是。整数散列码比字符串计算便宜得多。

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

0

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

如果你正在寻找一个体面的通用散列,将产生良好的分布式散列值,你可能想看看Jenkins hash functions有变种的字符串和整数。但是,坦率地说,如果你的数据集有500 固定项目你可能想看看一个完美的散列函数发生器,如GNU gperf或者甚至根据你的数据的替代数据结构。

+0

它拥有500个项目,我想用两个字符串进行散列和int键 – matrix 2013-05-08 10:27:32

+0

使用散列詹金斯我挂。它应该很好。 – 2013-05-08 14:59:23

0

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

对于字符串散列,我用PJW算法得到了很好的结果。只是谷歌的“PJW哈希字符串”。一个变化here 要使用一个整数增加哈希,see here