bloom filter

翻译 2012年03月31日 10:39:34

一、什么是 Bloom filter

  Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,这种检测只会对在集合内的数据错判,而不会对不是集合内的数据进行错判,这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况,可见 Bloom filter 是牺牲了正确率换取时间和空间。[1]

编辑本段二、Bloom filter 计算方法

  如需要判断一个元素是不是在一个集合中,我们通常做法是把所有元素保存下来,然后通过比较知道它是不是在集合内,链表、树都是基于这种思路,当集合内元素个数的变大,我们需要的空间和时间都线性变大,检索速度也越来越慢。 Bloom filter 采用的是哈希函数的方法,将一个元素映射到一个 m 长度的阵列上的一个点,当这个点是 1 时,那么这个元素在集合内,反之则不在集合内。这个方法的缺点就是当检测的元素量很多时候可能有冲突,解决方法就是使用 k 个哈希 函数对应 k 个点,如果所有点都是 1 的话,那么元素在集合内,如果有 0 的话,元素则不再集合内。

编辑本段三、Bloom filter 特点

  Bloom filter 优点就是它的插入和查询时间都是常数,另外它查询元素却不保存元素本身,具有良好的安全性。它的缺点也是显而易见的,当插入的元素越多,错判“在集合内”的概率就越大了,另外 Bloom filter 也不能删除一个元素,因为多个元素哈希的结果可能在 Bloom filter 结构中占用的是同一个位,如果删除了一个比特位,可能会影响多个元素的检测。

编辑本段四、Bloom filter 的一个简单例子

  下面是一个简单的 Bloom filter 结构,开始时集合内没有元素
  当来了一个元素 a,进行判断,这里哈希函数有两个,计算出对应的比特位上为 0 ,即是 a 不在集合内,将 a 添加进去:
  之后的元素,要判断是不是在集合内,也是同 a 一样的方法,只有对元素哈希后对应位置上都是 1 才认为这个元素在集合内(虽然这样可能会误判):
  随着元素的插入,Bloom filter 中修改的值变多,出现误判的几率也随之变大,当新来一个元素时,满足其在集合内的条件,即所有对应位都是 1 ,这样就可能有两种情况,一是这个元素就在集合内,没有发生误判;还有一种情况就是发生误判,出现了哈希碰撞,这个元素本不在集合内。

大规模数据处理Bloom Filter C++代码实现

Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例    为...
  • gdutliuyun827
  • gdutliuyun827
  • 2013年12月17日 15:11
  • 2929

HBase总结(九)Bloom Filter概念和原理

Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2014年10月11日 11:50
  • 5674

Bloom Filter的原理及实现

Bloom Filter:是一个比特数组,表示具有一定误报率的集合。主要优势在于其大小(比特位个数)为常数且在初始化时被设置,增加更多的元素到一个Bloom Filter 中不会增加它的大小,仅增加误...
  • ozhaohuafei
  • ozhaohuafei
  • 2014年04月15日 10:51
  • 1845

open bloom filter

  • 2012年11月19日 15:42
  • 620KB
  • 下载

Bloom Filter of 2.5 Million common passwords

  • 2012年11月01日 10:58
  • 744KB
  • 下载

bloom filter 相关论文资料

  • 2012年01月18日 11:27
  • 10.21MB
  • 下载

Bloom Filter概念和原理

  • 2010年11月28日 14:29
  • 416KB
  • 下载

bloom filter布隆过滤器学习资料大全

  • 2011年08月10日 13:05
  • 13.99MB
  • 下载

Bloom Filter概念和原理.docx

  • 2012年07月26日 11:06
  • 72KB
  • 下载

bloom filter

  • 2012年10月12日 20:50
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bloom filter
举报原因:
原因补充:

(最多只允许输入30个字)