我明白是什么让bloom过滤器成为一种有吸引力的数据结构;然而,我发现很难真正理解什么时候可以使用它们,因为您仍然必须执行您试图避免的昂贵操作,以确保您没有发现误报。因此,它们通常不会增加很多开销吗?例如,wikipedia上关于bloom filters的文章建议可以使用bloom filters进行数据同步。我知道第一次bloom filter为空的时候会有多好,但是如果你没有改变任何东西,你就会再次去同步你的数据。现在,对bloom过滤器的每次查找都会报告文件已经被复制,但我们是否仍然必须执行我们试图避免的较慢的查找任务,以实际确保这是正确的?
发布于 2011-05-25 07:58:15
基本上,您使用Bloom filters来避免证明数据结构中不存在某项的冗长而艰巨的任务。确定某些东西是否丢失几乎总是比确定它是否存在更困难,因此过滤器有助于弥补搜索您无论如何都找不到的东西的损失。它并不总是有效的,但当它起作用时,你会收获巨大的好处。
发布于 2015-09-12 20:25:57
Bloom filters在成员查询的情况下非常有效,即找出元素是否属于集合。集合中元素的数量不会影响查询性能。
https://stackoverflow.com/questions/6118154
复制相似问题