首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C的最小散列函数?

问C的最小散列函数?
EN

Stack Overflow用户
提问于 2009-04-13 13:54:19
回答 6查看 56.5K关注 0票数 44

我不能使用boost:hash,因为我必须坚持使用C,不能使用C++。

但是,我需要散列大量的令牌字符串(10 K到100 k) (5到40字节长),以便在这些字符串中搜索速度最快。

对于一个简单的任务来说,MD5、SHA1或任何长哈希函数似乎太重了,我不做密码学。另外还有存储和计算成本。

因此,我的问题是:

  1. 在大多数实际情况下,最简单的哈希算法可能会确保冲突预防。
  2. 哈希值要使用多少位?我正在开发32位系统。Perl/Python中的哈希算法也使用32位散列吗?还是我要跳到64岁?
  3. 关于常见脚本语言中哈希表的实现:实现是否检查冲突,还是可以完全避免该部分?
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-13 14:04:18

您可以在http://www.azillionmonkeys.com/qed/hash.html找到一个好的(快速的)散列函数和有趣的读物。

唯一不应该检查碰撞的情况是,如果您使用完美的哈希--一个很好的老式查找表,比如葛培夫。

票数 24
EN

Stack Overflow用户

发布于 2009-04-13 14:02:43

  1. 这里是对最著名的已知哈希函数的一个很好的概述。
  2. 32位应该工作得很好。
  3. 你总是需要检查碰撞,除非你想要写一个有趣的散列表:)
票数 11
EN

Stack Overflow用户

发布于 2009-04-13 14:00:34

哈希表查找的一般哈希函数。它指定不用于加密目的,但既然您指定了没有此目的,那么您应该可以。

它包括了-- Hash函数概述--试用

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/743939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档