推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

布隆过滤器的原理与实现:用空间换错误的判断.docx

资料介绍

布隆过滤器的原理与实现:用空间换错误的判断

一、什么是布隆过滤器

布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在集合中。它有两种回答方式:

1. "可能存在于集合中":可能误判(假阳性)

2. "绝对不在集合中":一定正确(无假阴性)

布隆过滤器的核心特性:用很小的内存表示大量元素,接受一定的误判概率。

二、布隆过滤器的原理

2.1 数据结构

布隆过滤器是一个位数组(bit数组)和一组哈希函数:

// 位数组:m位,初始全为0
// k个哈希函数:h1, h2, ..., hk
// 每个哈希函数将元素映射到[0, m)范围

[0][0][0][0][0][0][0][0][0][0]  ← 初始全0

2.2 插入操作

插入元素时,用k个哈希函数计算k个位置,将这k个位置都设为1:

void insert(BloomFilter *bf, const char *data) {
    for (int i = 0; i < bf->hashCount; i++) {
        int pos = hash(data, i, bf->size);
        bf->bitmap[pos] = 1;   // 将第pos位设为1
    }
}


部分文件列表

文件名 大小
布隆过滤器的原理与实现:用空间换错误的判断.docx 39K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载