当前位置:   article > 正文

布隆过滤器(Bloom Filter)原理及优缺点简介_布隆过滤器有什么缺点

布隆过滤器有什么缺点

前言

今天遇到的新鲜面试题:

问数据量在million级别的情况下,怎么快速判断一个data是不是在数据库中出现过,

当时没想到怎么做,回了家一拍大腿才想起来这是布隆过滤器……

唉,在极客时间学过这个概念,但是学完之后再也没用到过,而且太久没打LOL了,所以远远地抛到脑后……

今天赶快复习一下……

 

作用

布隆过滤器用于检索一个元素是否存在一个集合里。

 

特点

优点:空间效率 和 时间效率 都非常高

缺点:存在误识别率并且删除困难。

注意⚠️:此处的误识别率是指,当一个布隆过滤器判断一个数据在集合中存在时,有一定的可能性误判;但如果布隆过滤器判断一个数据不在集合中时,则100%正确。

 

原理

(注:以下两张图均来自《算法面试通关40讲》)

如上图所示,使用哈希函数将每个元素映射到一个二进制向量的三个位上,

将集合中每个元素对应的三个位记录成1。

当需要判断一个新的元素w 在不在集合中时,可以先计算出w的三个位,

然后只要发现其中存在任何一个位为0, 则可以100%肯定,w不在此集合中。

再来个例子:

假设集合中已经存在元素A和元素E,

需要判断元素 A, B, C在不在集合里,

看上图可以发现, 元素B对应的两个key位出现映射冲突,即恰好都是1,所以布隆过滤器会认为元素B存在于集合中,

但实际上B并不在集合里,这即是布隆过滤器误识别率的体现。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/859318
推荐阅读
相关标签
  

闽ICP备14008679号