一个文件中有40亿个整数,求出这个文件里的整数里不包含的一个整数
来源:互联网 发布:剪辑声音的软件 编辑:程序博客网 时间:2024/05/16 01:16
一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数
4个字节表示的整数,总共只有2^32约等于4G个可能。
为了简单起见,可以假设都是无符号整数。分配500MB内存,每一bit代表一个整数,刚好可以表示完4个字节的整数,初始值为0。基本思想每读入一个数,就把它对应的bit位置为1,处理完40G个数后,对500M的内存遍历,找出一个bit为0的位,输出对应的整数就是未出现的。
算法流程:
1)分配500MB内存buf,初始化为0
2)unsigned int x=0x1;
for each int j in file
buf=buf|x<<j;
end
(3) for(unsigned int i=0; i <= 0xffffffff; i++)
if (!(buf & x<<i))
{
output(i);
break;
}
以上只是针对无符号的,有符号的整数可以依此类推。
转载自:http://blog.csdn.net/jiaych/article/details/5927608
- 一个文件中有40亿个整数,求出这个文件里的整数里不包含的一个整数
- 一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数
- 一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数。
- 【腾讯面试题】求出这个文件里的整数里不包含的一个整数
- 今天大家做的一个比赛题:有6个文件,每个文件里大约200w整数,每行一个找出所有文件里最大的一个数字
- 面试题:给定一个包含4300000000个32位证书的顺序文件,求出一个至少包含两次的整数
- 编程珠玑:给定一个包含4300000000个32位证书的顺序文件,求出一个至少包含两次的整数
- 在一个包含40亿个随机排列的32位整数的顺序文件中(注意随机排序),找出一个不再文件中的32位整数
- 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数
- 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。
- 编程珠玑 第二章 习题 2 给定一个包含4300000000个32位证书的顺序文件,求出一个至少包含两次的整数
- 给定包含4300000000个32位整数的顺序文件,如何找出一个出现至少两次的整数
- 162 有2个数组,里面有 N 个整数,看是否两个数组里存在一个同样的数
- 微软笔试题 给一个包含10^7个整数的大文件排序
- 162 1. 给一个有N个整数的数组S..和另一个整数X,判断S里有没有2个数的和为X
- 数组A包含0到n的所有整数,但其中缺了一个,且数组A里的整数都是用二进制形式存储,求这个缺失的整数
- 判断一个整数的二进制位中有多少个1
- 判断一个整数的二进制位中有多少个1
- 关于TLD工程在VS2010下运行的修改
- 【LeetCode】Pascal's Triangle (杨辉三角)
- Ad Hoc Distributed Queries的启用与关闭
- Redis Sentinel 源码分析
- java调用c++动态库dll
- 一个文件中有40亿个整数,求出这个文件里的整数里不包含的一个整数
- 最小生成树
- Firefox保存网页预览模式下的图片方法
- c++中的explicit关键字及隐式类型转换
- C++中有关内存的思考
- 在一个文件中有10G个整数,乱序排列,要求找出中位数
- ITK VTK CTK QT 跨平台联合开发之 四 <Mac OS X篇>
- 递归--阶乘
- 图像处理特征不变算子系列之KLT算子--GoodFeaturesToTrack(七)