布隆过滤器用于测试某一元素是否存在于给定的集合中,是一种空间利用率很高的随机数据结构(probabilistic data structure),存在一定的误识别率(false positive),即布隆过滤器报告某一元素存在于某集合中,但是实际上该元素并不在集合中,但是没有错误识别的情形(fals...
分类:
其他好文 时间:
2014-12-08 12:00:24
阅读次数:
185
原文:http://googlechinablog.blogspot.com/2007/07/bloom-filter_7469.html在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典...
分类:
其他好文 时间:
2014-12-01 22:09:39
阅读次数:
223
原文地址: http://www.cnblogs.com/dolphin0520/archive/2012/11/10/2755089.html
位图数据结构详解: http://www.cnblogs.com/dolphin0520/archive/2011/10/19/2217369.html
Hash表数据结构详解:http://www.cnblogs.com/dolphin0520/a...
分类:
其他好文 时间:
2014-11-30 16:54:35
阅读次数:
291
bloom filter这种数据结构用于判断一个元素是否在集合内,当然,这种功能也可以由HashMap来实现。bloom filter与HashMap的区别在于,HashMap会储存代表这个元素的key自身(如key为"IKnow7",那么HashMap将存储"IKnow7"这12个字节(java),其实还需要包括引用大小,但java中相同string只存一份),而bloom
filter在底...
分类:
其他好文 时间:
2014-11-26 18:55:10
阅读次数:
201
布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率(假正例False positives,即Bloom Filter报告某一元素存在于某集合中,但是实际上该元...
分类:
其他好文 时间:
2014-11-02 13:52:25
阅读次数:
144
技巧一:对无重复的数据集排序
对于给定的数据集,(2,4,1,12,9,7,6)如何对它排序?
第一种方式、使用最基本的冒泡,快排、基数排序等,最小时间复杂度 0(nlogn)。
第二种方式、使用位数组排序算法。
对于数据集排序,相信大多数都会在第一时间便能想起来,而对于方法二,就需要一定的思考了。...
分类:
编程语言 时间:
2014-10-28 00:52:23
阅读次数:
302
通常,我们需要判断一个元素是否在一个集合中。比如在WPS字处理软件中,需要检查一个单词是否拼写正确;在FBI
中需要判断一个嫌疑犯的名字是否在嫌疑名单上;在网络爬虫里,判断一个网址是否被访问过。最简单的解决办法就是
采用HashTable的方法来存储,它的好处是快速且精确,缺点是耗费大量内存空间。
现在,来介绍一种数学工具,叫做布隆过滤器(Bloom Filter),是布隆在1970年...
分类:
其他好文 时间:
2014-10-19 02:41:55
阅读次数:
310
Bloom Filters Ref[1]1. 简介Bloom filter(布隆过滤器;有更好的或正确的翻译,告诉我) 是一个数据结构,该数据结构快速并且内存高效,它可以告诉你某个元素是否在集合中。作为高效的代价,Bloom filter是存在概率的数据结构:它告诉我们某个元素一定不在集合中,或者可...
分类:
其他好文 时间:
2014-10-14 19:48:49
阅读次数:
142
常见问题:①Top K问题:分治+Trie树/Hash_map+小顶堆。采用Hash(x)%M将原文件分割成小文件,如果小文件太大则继续Hash分割,直至可以放入内存。②重复问题:BitMap位图 或 Bloom Filter布隆过滤器 或 Hash_set集合。每个元素对应一个bit处理。③排序问...
分类:
其他好文 时间:
2014-09-09 11:27:08
阅读次数:
272
bloomFilter是70年代提出来的一个利用时间,错误率来换取空间的应用。应用在大数据量的情况下,比如爬虫抓取的大量url,用来判断哪些url是已经爬取过的。m =>使用的散列长度,这个值通常用来创建BitSet的长度,java.util.BitSetn =>待散列的字符串的个数。k =>使用的...
分类:
其他好文 时间:
2014-08-28 12:52:49
阅读次数:
159