[Algorithm] Bloom Filter

布隆过滤器是Bit-Map的一种扩展。

如果判断一个元素是否在一个集合中,通常的做法是将所有元素保存起来,然后通过比较知道他是否在集合中。

布隆过滤器的做法是申请一个N位的位图数组与K个哈希函数,K个哈希函数都可以将元素映射到位图中0-N的位置上,

对每一个元素使用K的哈希函数,将每次映射结果对应的位图位设置为1。

对于需要判断的元素,如果这个元素的k次哈希值都对应于位图中的1,那么可以说明该元素可能在集合中。

可能是因为,有可能的位图中的1可能是被其他元素设置的。而非判断元素。

猜你喜欢

转载自www.cnblogs.com/immjc/p/9443337.html