哈希应用 : 位图和布隆过滤器

位图

哈希应用 : 位图和布隆过滤器_第1张图片

在这里我们可以用一种哈希的新方法  --  又快又节省内存(位图)

哈希应用 : 位图和布隆过滤器_第2张图片

--------------------------------------------------------------------------------------------------------------------------------

哈希应用 : 位图和布隆过滤器_第3张图片

哈希应用 : 位图和布隆过滤器_第4张图片

对我们的位进行标记

哈希应用 : 位图和布隆过滤器_第5张图片

哈希应用 : 位图和布隆过滤器_第6张图片

哈希应用 : 位图和布隆过滤器_第7张图片

哈希应用 : 位图和布隆过滤器_第8张图片

位图的应用

1.给定100亿个整数,设计算法找到只出现一次的整数

哈希应用 : 位图和布隆过滤器_第9张图片

哈希应用 : 位图和布隆过滤器_第10张图片

2.给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集

哈希应用 : 位图和布隆过滤器_第11张图片

位图的应用:

1.快速查找某个数据是否在一个集合中

2.排序  + 去重(问题1)

3.求两个集合的交集和并集

------------------------------------------------------------------------------------------------------------------------------

布隆过滤器

我们的位图只能处理整数,但是要是我们来了字符串,但是数据量又很大很大我们就得用布隆过滤器

哈希应用 : 位图和布隆过滤器_第12张图片

理论而言,一个值映射的位越多,冲突的,误判率越低,但是也不敢映射太多,映射位越多,空间消耗越多

哈希应用 : 位图和布隆过滤器_第13张图片

哈希应用 : 位图和布隆过滤器_第14张图片

哈希应用 : 位图和布隆过滤器_第15张图片

哈希应用 : 位图和布隆过滤器_第16张图片

哈希应用 : 位图和布隆过滤器_第17张图片

布隆过滤器应用

1.给两个文件,分别有100亿个query ,我们只有1G内存,如何找到两个文件的交集?分别给出精确算法和近似算法

哈希应用 : 位图和布隆过滤器_第18张图片

近似算法: 把一个文件放进布隆过滤器当中,在把另一个文件与布隆过滤器进行比对,在就是交集,当然这里存在两个问题就是,在也有可能存在误判,然后没有去重

精确算法:

哈希应用 : 位图和布隆过滤器_第19张图片

2.如何扩展BloomFilter使得它支持删除元素的操作

BloomFilter能否支持删除呢???

哈希应用 : 位图和布隆过滤器_第20张图片

如果要强行支持呢??

哈希应用 : 位图和布隆过滤器_第21张图片

你可能感兴趣的:(数据结构高阶,哈希算法,算法)