当前位置:   article > 正文

快速判重——布隆过滤器(Bloom Filter)_布隆过滤查重

布隆过滤查重

1.由一个很长的二进制向量和一系列随机映射函数组成
2.布隆过滤器可以用于检索一个元素是否在一个集合中
3.优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率

应用:给定数据(2,4,1,12,9,7,6)如何对它排序?
方法1:基本的排序方法包括冒泡,快排等。
方法2:使用BitMap算法
所谓的BitMap就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间。

基本思想:
  这此我用一个简单的例子来详细介绍BitMap算法的原理。假设我们要对0-7内的5个元素(4,7,2,5,3)进行排序(这里假设元素没有重复)。我们可以使用BitMap算法达到排序目的。要表示8个数,我们需要8个byte。
  1.首先我们开辟一个字节(8byte)的空间,将这些空间的所有的byte位都设置为0
  2.然后便利这5个元素,第一个元素是4,因为下边从0开始,因此我们把第五个字节的值设置为1
  3.然后再处理剩下的四个元素,最终8个字节的状态如下图
  4.现在我们遍历一次bytes区域,把值为1的byte的位置输出(2,3,4,5,7),这样便达到了排序的目的
  从上面的例子我们可以看出,BitMap算法的思想还是比较简单的,关键的问题是如何确定10进制的数到2进制的映射图

下一个问题?(对有重复的数据进行判重?)
2,4,1,12,2,9࿰

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号