学习笔记 | 大数据和空间限制 | 布隆过滤器 BloomFilter

布隆过滤器是一种概率型数据结构,用于高效地判断一个元素是否可能存在于集合中,允许存在一定误判率。适用于不安全网页黑名单过滤、URL去重、垃圾邮件过滤等场景。其原理涉及哈希函数和位数组,实现时需要根据误判率和数据规模计算合适的过滤器大小和哈希函数数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

布隆过滤器

  • BloomFilter 的目的是检测一个元素是否存在于一个集合内。
  • 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询。根据查询结果可以用来告诉你 某样东西一定不存在或者可能存在 这句话是该算法的核心。
  • 相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的,同时布隆过滤器还有一个缺陷就是数据只能插入不能删除
【题目】和【要求】

不安全网页的黑名单包含100亿个黑名单网页,每个网页的URL最多占用64B。现在想要实现一个网页过滤系统,利用该系统可以根据网页的URL判断该网页是否在黑名单上,请设计该系统。

  1. 该系统允许有万分之一以下的判断失误率。
  2. 使用的额外空间不要超过30GB
首先介绍哈希函数(散列函数)的概念
  • 哈希函数的输入域可以是非常大的范围,比如,任意一个字符串,但是输出域是固定的范围,假设为S,并具有如下性质:
  1. 典型的哈希函数都有无限的输入值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值