布隆过滤器

布隆过滤器可以在占用内存极小的情况下,低误判率地判断某数据是否存在。

 

布隆过滤器使用一个bit数组,每一位只有1或0。

当一个数据添加的时候,会通过n个哈希函数获得n个值,将数组对应位置的值修改为1。

 

因此,判断一个数据是否存在的时候,只需要通过n个哈希函数获得n个值,判断每个位置是否都为1,有一个不为0则可以确定该数据不存在,如果全都为1,说明可能存在(可能别的数据的哈希结果会和该数据的哈希结果有重叠部分)。

 

bit数组的长度和哈希函数的个数决定了布隆过滤器的误判概率。合理的设置下,误判率可低至万分之一,效率非常高。

posted @ 2020-09-13 14:20  昆梧  阅读(137)  评论(0)    收藏  举报