【发布时间】:2015-04-22 16:52:23
【问题描述】:
我正在使用uthash.h 在 C 中实现哈希。我正在使用哈希表进行基本的字数统计练习。我有一个包含单词的文件,我必须计算每个单词的频率。 uthash.h的实现需要我为每个条目生成一个整数id,我想计算每个字符串对应的唯一整数。我尝试使用 md5 哈希算法,但它生成带有数字和字母的字符串,所以它没有用。有人可以建议我这样的算法。
【问题讨论】:
-
一个好的 md5 散列实现应该能够为您提供原始的 16 字节数组。将其拆分为 4 个 32 位整数并将它们异或在一起。该字母数字字符串只是用于显示哈希的修道院表示。
-
@user1929959,您提到的第二个链接具有返回无符号长值的散列函数,但在
uthash.h实现中,id 必须是整数。我不知道这是否可行。我将尝试这种方法并在完成后发布我的结果。同时,如果您有更多建议,请发表。 -
I head murmur3 非常适合字符串。
-
请不要为此使用 md5 或任何其他加密哈希函数。它们的计算比良好的非加密哈希函数慢得多。