位图
在这里我们可以用一种哈希的新方法 -- 又快又节省内存(位图)
--------------------------------------------------------------------------------------------------------------------------------
对我们的位进行标记
位图的应用
1.给定100亿个整数,设计算法找到只出现一次的整数
2.给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集
位图的应用:
1.快速查找某个数据是否在一个集合中
2.排序 + 去重(问题1)
3.求两个集合的交集和并集
------------------------------------------------------------------------------------------------------------------------------
布隆过滤器
我们的位图只能处理整数,但是要是我们来了字符串,但是数据量又很大很大我们就得用布隆过滤器
理论而言,一个值映射的位越多,冲突的,误判率越低,但是也不敢映射太多,映射位越多,空间消耗越多
布隆过滤器应用
1.给两个文件,分别有100亿个query ,我们只有1G内存,如何找到两个文件的交集?分别给出精确算法和近似算法
近似算法: 把一个文件放进布隆过滤器当中,在把另一个文件与布隆过滤器进行比对,在就是交集,当然这里存在两个问题就是,在也有可能存在误判,然后没有去重
精确算法:
2.如何扩展BloomFilter使得它支持删除元素的操作
BloomFilter能否支持删除呢???
如果要强行支持呢??