赞
踩
假设存放1,3,5,7四个数字,存放在数组中需要花费16字节(Byte)
这里考虑用位图的方式,初始化一个bit[8]的数组,数组由8个8bit组成,将1,3,5,7对应位置位1,此时,利用这1字节的空间就可以存放8个数字,内存消耗相当于原来的1/32.
位图,适合存储大数据,每一位代表一种状态
如何解决缺点呢?利用哈希函数机制来进行映射。(布隆过滤器)
注意布隆过滤器的误差机制(由于哈希碰撞导致)
哈希函数越多,误判率越低(空间足够的情况下),但是运行时消耗的计算时间会增加。
若空间不足,则会导致误判率接近1,即空间已满,无论用多少哈希函数都不能正确判断
布隆过滤器总结:判断存在的时候不一定存在,但是判断不存在的一定不存在
布隆过滤器适合用在对数据很少删除,且无需精确确定是否存在的业务场景
布隆过滤器的最大的用处就是,能够迅速判断一个元素是否在一个集合中。因此它有如下三个使用场景:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。