首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl的完美哈希函数(如gperf)?

Perl的完美哈希函数(如gperf)?
EN

Stack Overflow用户
提问于 2011-10-21 08:38:15
回答 2查看 871关注 0票数 4

我将使用key:value存储,并希望在Perl中创建不可冲突的散列。有没有Perl模块或函数可以用来生成不可冲突的散列函数或表(可能类似于gperf)?我已经知道了输入值的范围。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 09:48:02

我找不到一个纯Perl的解决方案,最接近的是Reini Urban's examinations of using perfect hashes with a type system。如果使用XS,CMPH (C Minimal Perfect Hashing Library)可能比gperf更合适。CMPH似乎针对重要的密钥大小和运行时生成进行了优化。

在Perl中运行时生成一个完美的散列函数的成本可能会掩盖使用它的价值。为了获得好处,你会希望它被编译和缓存。因此,编写一个在XS编译时从固定键列表生成函数的XS模块可能是最好的方法。

出于好奇,您的数据量有多大,该集合包含多少个密钥?

票数 4
EN

Stack Overflow用户

发布于 2011-10-21 09:56:32

您可能会对Judy感兴趣。它不是一个哈希表实现,但它被认为是一个非常有效的关联数组实现。

请注意,Perl的散列调整得非常好,当存储桶开始变大时,它们会自动重新散列。

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

https://stackoverflow.com/questions/7843847

复制
相关文章

相似问题

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