布隆过滤器

布隆过滤器是一种用于大数据查询优化的算法,通过k个哈希函数将key映射到比特数组,减少内存消耗。在判断元素是否存在时,可能出现误判但不会漏判。它在数据量越大时准确性越高,但不支持元素删除,适用于需要快速空间效率判断的场景。
摘要由CSDN通过智能技术生成

目的:当在一个大的数据空间中查询某一个数据时,如果要查询的数据特别多,那么每次都遍历查询该空间,会导致出现慢查及占用大量本地内存,为了解决该现象,使用布隆过滤器。
原理:bloom算法类似一个hash set,用来判断某个元素(key)是否在某个集合中。

算法实现:

  1. 首先需要k个hash函数,每个函数可以把key散列成为1个整数
  2. 初始化时,需要一个长度为n比特的数组,每个比特位初始化为0
  3. 某个key加入集合时,用k个hash函数计算出k个散列值,并把数组中对应的比特位置为1
  4. 判断某个key是否在集合时,用k个hash函数计算出k个散列值,并查询数组中对应的比特位,如果所有的比特位都是1,认为在集合中。

优点:
不需要存储key,节省空间
数据量越大越准确
缺点:

  1. 算法判断key在集合中时,有一定的概率key其实不在集合中
  2. 无法删除

总结:
集合中查到该数据的比特位为0,结果是该数据一定不存在在该集合中
但是该集合中查到的比特位为1,结果是该数据不一定存在该集合中,有可能不存在
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值