布隆过滤器
布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否属于某个集合。它的特点是空间占用小、查询速度快,但存在一定的误判率(即可能将不属于集合的元素误判为属于集合)。布隆过滤器广泛应用于缓存系统、数据库、网络路由等领域。
什么是布隆过滤器?
布隆过滤器由 Burton Howard Bloom 在 1970 年提出,它通过多个哈希函数将元素映射到一个位数组中。布隆过滤器的核心思想是:
- 使用一个长度为
m
的位数组(初始值为 0)。 - 使用
k
个独立的哈希函数,将元素映射到位数组的k
个位置。 - 当查询一个元素时,检查这
k
个位置是否都为 1。如果都为 1,则认为元素可能存在于集合中;如果有任何一个位置为 0,则元素一定不存在于集合中。
备注
布隆过滤器的误判率(False Positive)是指它可能将不属于集合的元素误判为属于集合,但它不会将属于集合的元素误判为不属于集合。