Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省。
集合表示和元素查询
原理:就是定义n个hash函数 所有hash函数的结果会被限定在m个结果集 当集合加入元素的时候 会进行n次hash hash的结果的散布在m个结果集当中 m个结果集里 将n次hash的结果置为1标识
当判断一个元素是否在这个数据集合里的时候 只需要对这个元素做N次hash 然后查看n个结果 在结果集里是不是都被置为1 如果是的话 则判断是这个集合里的(有可能不是) 但是如果不都是被置为1 那么久肯定不是这个集合里的
网友评论