![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据算法
火柴头9527
这个作者很懒,什么都没留下…
展开
-
再看不懂BitMap算法,我请你吃饭(五)
通过一个小故事认识布隆过滤器(Bloom Filter)某男生着几个朋友去KTV唱歌,他出示自己的身份证,KTV管理员根据身份证号“计算”出3个房间号,这伙人只能去这些房间,把灯都打开,开始K歌。(这里的“3”是假设,可能会调整)再有客人来,KTV管理员重复上述操作。每次“计算”出来的3个房间号,几乎不可能重复,言外之意,可能重复,只是几率极低。而且,每次计算的结果都一样。如果不幸,重复了,那也只能将就了。有个女士心急火燎地来寻找她男朋友,由于房间太多,得有数亿间,逐个去查看几乎不可能。KTV管理员向原创 2020-11-06 13:24:17 · 222 阅读 · 0 评论 -
再看不懂BitMap算法,我请你吃饭(四)
java.util.BitSet自定义的BitMapV1EWAHCompressedBitmapBitSet.set(…)BitMapV1.add(…)set(…)BitSet.get(…)BitMapV1.isExist(…)get(…)BitSet.clear(…)BitMapV1.clear(…)clear(…)原创 2020-10-16 13:47:39 · 633 阅读 · 1 评论 -
再看不懂BitMap算法,我请你吃饭(三)
用户信息的标签化《漫画:Bitmap算法 整合版》写的非常好,一定要拜读下。这里,我想把文中提到的“用户信息的标签化”这个需求用代码实现一下。系统维护一个标签字典表t_tag,可能有成百上千个标签,这里仅定义10个标签示意:idtag1男2女390后400后5程序员6学生7苹果8三星9小米10华为用户信息表t_user:iduser_name1小灰2小黄3小白原创 2020-10-14 15:45:36 · 291 阅读 · 1 评论 -
再看不懂BitMap算法,我请你吃饭(二)
java.util.BitSet其实,Java API中有类似的BitMap实现。为了方便理解,假设要完成如下的算法:将[0, M]之间的整数集合记为A在[0, M)范围内,随机生成X个整数,其集合记为B计算:A - B举例:在[0, 10)之间,随机生成了0, 9, 3这三个数,计算结果,即A - B等于1, 2, 4, 5, 6, 7, 8, 10import org.junit.Test;import java.util.BitSet;import java.util.Rando原创 2020-10-14 15:45:03 · 155 阅读 · 0 评论 -
再看不懂BitMap算法,我请你吃饭(一)
基础在Java语言中,一个int类型变量占用4Byte,即32Bit内存空间。提问:10亿个int类型变量,需要占用多少内存空间?回答:(10亿 * 4) ÷ (1024 * 1024 * 1024) ≈ 3.73G如果要对10亿个,不重复的,int值进行排序,将至少需要3.73G内存。还有更好的办法吗?BitMap算法登场。做个游戏画8个相邻的小正方形,表示1Byte,即8Bit,给它起个名字叫byte[0],在它的下方同样画8个小正方形,起名叫byte[1]。每个正方形内安装了一个灯泡,它原创 2020-10-14 13:23:41 · 219 阅读 · 0 评论