首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bloom filter在C语言中的高效实现

Bloom filter在C语言中的高效实现
EN

Stack Overflow用户
提问于 2012-06-13 10:35:55
回答 5查看 13.8K关注 0票数 14

这个问题以前已经问过了,但当时没有答案,所以我决定再问一次。

我需要一个有效的实现一个布隆过滤器在C(不是C++)。如果没有这样的东西,我不会介意实现一个,如果给我一些好的参考,这样就不会占用我太多的时间。

我希望将此数据结构用于按比例(1:20k)进行插入和测试,因此它主要是测试密集型的。要测试的数据是64位整数。

EN

回答 5

Stack Overflow用户

发布于 2013-02-13 16:50:34

我在这里有一个独立的纯C库,可能会用到:https://github.com/jvirkki/libbloom

票数 16
EN

Stack Overflow用户

发布于 2012-06-13 14:59:12

我不想做太多的自我推销,但我已经为Geany editor/IDE写了一个插件,它使用了布隆过滤器来过滤掉重复的文本行。

这个实现是用C语言编写的,你可以在right here on GitHub中找到它。它是GPL v3,所以根据您的实际需求,您可能会使用它,也可能不会使用它。

关于我的实现的一些注意事项:

  • 它是为过滤字符串而设计的,并不抽象键类型。这意味着你将不得不修改键处理来满足你的需要。
  • 它支持非特征语义,如果你愿意,你可以使用它进行完全非概率的存在测试(参见bloom_filter_new()使用的BloomContains回调函数指针)。只需传递NULL即可获得一个“纯”过滤器。
  • 字符串散列函数是由Austin Appleby编写的MurmurHash2。我评估了更新的MurmurHash3,但是版本2更容易使用。
  • 为了适应Geany生态系统,这段代码始终使用GLib类型。

它还没有针对性能进行过严格的调整,但应该可以了。当然,如果您在测试后得到任何反馈,我将不胜感激!

票数 4
EN

Stack Overflow用户

发布于 2012-06-13 10:40:15

铬在C++中有一个

github link

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

https://stackoverflow.com/questions/11007517

复制
相关文章

相似问题

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