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

您所在的位置:网站首页 布隆过滤器的作用是什么 布隆过滤器(Bloom Filter)原理及优缺点简介

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

2024-07-13 07:32| 来源: 网络整理| 查看: 265

前言

今天遇到的新鲜面试题:

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

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

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

今天赶快复习一下……

 

作用

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

 

特点

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

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

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

 

原理

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

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

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

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

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

再来个例子:

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

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

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

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

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3