哈希表这种数据结构能够非常快速的查找元素但它的缺点是空间效率不高位图提高了空间效率但位图只能用来判断元素是否存在关于位图的实现,在这里http://zhweizhi.blog.51cto.com/10800691/1784383下面简单介绍一下布隆过滤器。现在,假如通过哈希算法,将一个字符串转化成int类..
分类:
其他好文 时间:
2016-05-30 16:01:50
阅读次数:
200
存在这样一个问题:判断一个函数是否已经在集合中,最常见的是用散列表实现集合,然后遇到一个新元素时,在散列表中查找,如果能找到则意味着存在于集合当中,反之不存在,但是散列表有一个弊端,它耗费的空间太大了—布隆过滤器布隆过滤器布隆过滤器是一种空间效率很高的随机数据结构,它可以看成是对位图的扩展。其结构是长度为n(如何设计最优的n)的位数组,初始化为0,当一个元素加入这个集合中,通过k个散列函数将这个元素...
分类:
其他好文 时间:
2016-05-27 12:19:58
阅读次数:
253
在大数据与云计算发展的时代,我们经常会碰到这样的问题。我们是否能高效的判断一个用户是否访问过某网站的主页(每天访问量上亿)或者需要统计网站的pv、uv。最直接的想法是将所有的访问者存起来,然后每次用户访问的时候与之前集合进行比较。不管是将访问信息存在内存(或数据库)都会对服务器造成非常大的压力。那是否存在一种方式,容忍一定的错误率,高效(计算复杂度、空间复杂度)的实现访问量信息的跟踪、统计呢?接下来介绍的布隆过滤器(Bloom Filter)就可以满足当前的使用场景(注释:基数计数法同样能满足pv、uv的统...
分类:
其他好文 时间:
2016-05-26 06:24:18
阅读次数:
704
布隆过滤器是一种能够在大量数据中判断数据是否存在的算法。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。在介绍‘布隆过滤..
分类:
其他好文 时间:
2016-05-23 19:17:37
阅读次数:
255
位图定义:利用位的状态来存放一个数是否存在,其实就是把一个数映射成一个简单的数用以标记他是否存在,一般使用情况为查找一个数是否存在。数据结构:1/8=01%8=11<<1(第二个bit位置1)2/8=02%8=21<<2(第3个bit位置1)3/8=03%8=31<<3(第4个bit位置1)4/8=0......
分类:
其他好文 时间:
2016-05-15 00:47:38
阅读次数:
247
位图是用一个btye位来表示一个数据是否存在,再通过哈希函数确定一个数据所在的位置,这样处理会使当仅需要判断一个数据在不在的时候大大的提高效率,缩小内存的使用,如一个数据为int型,而一个int型的数据构成的位图能表示32个数据的存在状态。代码实现如下:Bitmap.h:#inclu..
分类:
其他好文 时间:
2016-05-14 01:15:41
阅读次数:
153
//BloomFilter.h
#pragmaonce
#ifndef__BLOOM_FILTER_H__
#define__BLOOM_FILTER_H__
#include<string>
#include"BitMap.hpp"
#include"HashFuncer.h"
template<classK=std::string,classHashFuncer1=__HashFuncer1<K>,
classHashFuncer2=__HashFuncer2<K&..
分类:
其他好文 时间:
2016-05-14 01:12:05
阅读次数:
205
我们先给出之前我看过的腾讯公司的一道笔试题,引出位图BitMap。给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。这个问题怎么解决呢?1)将40亿数据保存起来(保存在数组、链表、树中),再和该数判断是否相等。那我们思考一..
分类:
编程语言 时间:
2016-05-13 17:31:34
阅读次数:
325
布隆过滤器(BloomFilter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如果想要判断一个元素是不是..
分类:
其他好文 时间:
2016-05-13 15:38:39
阅读次数:
269
布隆过滤器它实际上是一个很长的二进制向量和一系列随机映射函数布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。优点:相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的..
分类:
其他好文 时间:
2016-05-13 15:36:08
阅读次数:
226