1.位数组
布隆过滤器使用一个位数组,初始化的时候全部为0
这个位数组的长度取决于预计的元素数量和可接受的错误率。
2.哈希函数
布隆过滤器需要使用多个哈希函数。当一个元素要被插入时,它会被传递给多个哈希函数,得到多个哈希值,然后将位数组中对应的位置的值设置为1。
3.查询操作
当要查询一个元素是否属于集合时,同样将这个元素传递给多个哈希函数从而得到多个哈希值,然后检查位数组中对应位置的值,如果对应位置的值都为1,那么可以判断元素可能存在集合中,如果存在一个位置为0,那么元素一定不存在集合中
总的来说:
- 布隆过滤器使用一个位数组,初始化全部为0,当一个元素要被插入时,它会被传递给多个哈希函数,得到多个哈希值,然后将位数组中对应位置的值设置为1,当查询一个元素是否属于集合的时候,同样会把这个元素传递给多个哈希函数,得到多个哈希值,然后检查检查位数组中对应位置的值,如果对应位置的值都为1,那么可以判断元素可能存在集合中,如果存在一个位置的值为0,那么元素一定不存在集合中