memtable中的bloom filterrocksdb在memtable中添加了prefix bloom filter,就是对key取prefix,然后把这个prefix加入到bloom filter中(为什么要这么做)所以memtable中是一个prefix的bloom filter。leve...
分类:
数据库 时间:
2015-04-27 18:17:00
阅读次数:
524
这题的意思是给你 n 道菜,第 i 道菜需要 Ai 步才能完成每次你能对 m 道菜分别完成一步,请问最少需要几次?这题暴力写肯定是不行的,去年省赛的时候就是没写出来这题,今天再把思路理一理吧。首先我们需要明确的是1. n m ①此时我们不难发现这个现象,如果 sum (A[i]) 能被 m 整除.....
Bloom Filter(布隆过滤器)主要用于判断某个元素是否属于集合内,但是这种判断不是一定正确的。
经典问题:
假设你有数量非常庞大的URL集合,现在给你一个新的URL,要你快速判断这个URL是否在上述的URL集合中。
解决这个问题比较原始的方法是:先用一个数组把所有URL存起来,然后再扫描这个数组,判断里面是否有元素与新的这个URL相同。这样做会耗费非常大的空间和时间,是非常不妥的一种...
分类:
其他好文 时间:
2015-04-20 09:32:32
阅读次数:
186
布隆过滤器在很多场合能发挥很好的效果,比如:网页URL的去重,垃圾邮件的判别,集合重复元素的判别,查询加速(比如基于key-value的存储系统)等,下面举几个例子:
有两个URL集合A,B,每个集合中大约有1亿个URL,每个URL占64字节,有1G的内存,如何找出两个集合中重复的URL。
很显然,直接利用Hash表会超出内存限制的范围。这里给出两种思路:
第一种:如果不允许...
分类:
其他好文 时间:
2015-04-18 16:13:57
阅读次数:
123
用摄像机特效只能做全屏bloom,unity standard assets里有现成的,但部分物体bloom需要自己实现一下,由于对unity不熟悉,被低级错误缠了半天,最后绕出来了。截图:
分类:
编程语言 时间:
2015-04-16 01:21:05
阅读次数:
472
算法介绍
Bloom Filter的中文名称叫做布隆过滤器,因为他最早的提出者叫做布隆(Bloom),因而而得此名。布隆过滤器简单的说就是为了检索一个元素是否存在于某个集合当中,以此实现数据的过滤。也许你会想,这还不简单,判断元素是否存在某集合中,遍历集合,一个个去比较不就能得出结果,当然这没有任何的问题,但是当你面对的是海量数据的时候,在空间和时间上的代价是非常恐怖的,显然需要更好的办法来...
分类:
编程语言 时间:
2015-04-07 09:58:58
阅读次数:
281
布嵘过滤器为一种空间效率很高的随机数据结构, 它的实现方法主要包括一个位数组, 可用c++中的bitset来实现和k个哈希函数. 算法原理为: 当向某一个集合中添加一个元素的时候, 该元素会分别作为K个哈希函数的输入, 将该元素映射到位数组的k个点, 将这些点置为1. 当要查找某个元素是否在该集.....
分类:
其他好文 时间:
2015-03-30 18:17:08
阅读次数:
116
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler).....
分类:
其他好文 时间:
2015-03-29 07:04:10
阅读次数:
137
Bloom Filter的中文翻译叫做布隆过滤器,是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如文章标题所述,本文只是做简单介绍,属于...
分类:
编程语言 时间:
2015-03-29 07:02:02
阅读次数:
214
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,B...
分类:
其他好文 时间:
2015-03-29 07:01:23
阅读次数:
150