【算法面试通关40讲】57 - 理论讲解:布隆过滤器

Bloom Filter

先来看下哈希函数的作用,利用哈希函数将keys映射到一个地址上来
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第1张图片
再来看下布隆过滤器的构成
由映射函数映射keys到二进制向量的某些位置上
优点在于速度非常非常的快,如果判断元素不在集合里面,那么肯定不在,如果判断在,那么有一定的几率不在
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第2张图片
举例
x, y, z分别映射到二进制的位置上,如下图所示,那么查询w时,w的映射位置没有1,那么w肯定不在集合中
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第3张图片
同理,A E插入进去之后,判断A在,正确,C不在,正确,B在,错误,那么B就是判断错误的例子
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第4张图片

案例,用途
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第5张图片
在比特币网络中
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第6张图片
【算法面试通关40讲】57 - 理论讲解:布隆过滤器_第7张图片
在数据库之前放置Bloom Filter,排除掉没有交易记录的查询,这样可以减少数据库查询的数量。注意布隆过滤器一定要跟有数据库,不能单独作为查询系统使用。

你可能感兴趣的:(算法和数据结构)