海量数据一,从2.5亿个正整数中找到不重复的整数
来源:互联网 发布:猫和老鼠胡桃夹子知乎 编辑:程序博客网 时间:2024/05/16 15:18
题目:从2.5亿个正整数中找到不重复的整数。
解答:
int有4个字节,32位bit,最多可表示
用2Bitmap法,每个正整数用两个bit的标志位,00表示没有出现,01表示出现1次,10表示出现多次。
开辟一个用2Bitmap法标志4G个正整数的桶数组,则总共需要4G*2bit=1G内存。
扫描整数,如果标志位为00(=0),则将对应位置的标志置为01(=1)。如果为01,则置为10(=2)。
数组用byte数组 来表示,byte[] flag;
一个byte 8bit,
换算的时候,
行数int i=number/4;
列数int j=number%4;
则number对应的标志位为int numberFlag=(flag[i]&(0x03<<(2*j)))>>(2*j);
扫描整数时可能需要设置新的标志值,设置时
(flag[i]&(~(0x03<<(2*j))&0xff))|(((newFlag%4)<<(2*j))&0xff)
标志位所在那俩bit更新,其他保持不变。
0 0
- 海量数据一,从2.5亿个正整数中找到不重复的整数
- 运用bitmap解决一道海量数据处理面试题:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
- 在2.5亿个整数中找出不重复的整数的C++实现源代码
- 2.5亿个整数中找出不重复的整数 bitmap
- 在2.5亿个整数中找出不重复的整数
- TOP-K排序算法,从海量不重复数据中找出最大/小的K个数
- 从一串字符串中找到第一个不重复的字母
- 从一整数数组中等概率抽取m个不重复的数
- 2.5亿个整数中找出不重复的数代码实现
- 从海量数据中找出重复次数最多的一个
- 找到字符串中第一个不重复的字符
- 找到字符串中第一个不重复的元素
- 海量不重复数据的生成
- [海量数据处理]用2-Bitmap找出数组中不重复的整数
- 从连续整数a~b中随机选取n个不重复的数字并且降序排列(in JS)
- 排序文件中的N个不重复的正整数
- 随机生成n个不重复的正整数
- 随机生成n个不重复的正整数
- Grails 快速入门(一)
- Shader特效——“旋转粒子”的实现【GLSL】
- HTC Vive之Unity3d开发日记——手柄交互编程
- Makefile例子,能够引用子目录下的源文件,并将二进制文件存放到相应目录
- Ubuntu 安装Navicat,界面出现乱码解决方法
- 海量数据一,从2.5亿个正整数中找到不重复的整数
- 重写toString方法输出对象信息
- 纪念一下一道题,luoguP1417 DP
- HDU 5894 hannnnah_j’s Biologica(lucas定理求组合数+乘法逆元)——2016 ACM/ICPC Asia Regional Shenyang Online
- 138boot
- 【Get深一度】多和优秀的人交流,哪怕在路上
- XML编程
- break, continue, goto, return语句详解
- junit3.8和junit4的最简单的区别(转)