博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十二章:数的判断
阅读量:4134 次
发布时间:2019-05-25

本文共 530 字,大约阅读时间需要 1 分钟。

数的判断

题目如下

7、腾讯面试题:给40亿个不重复的unsignedint的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?

分析:1个unsigned int占用4字节,40亿大约是4G个数不到,那么一共大约要用16G的内存空间,如果内存不够大,反复和硬盘交换数据的话,后果不堪设想。

位图法:

//腾讯面试题:给40亿个不重复的unsignedint的整数,没排过序的,//然后再给一个数,如何快速判断这个数是否在那40亿个数当中?//位图法,占内存512MB//一个unsigned int 能表示的数是0~2^32-1#include 
#include
using namespace std; //一个unsigned int 可以表示32个数#define MAX 1<<27unsigned int num[MAX]={0};void main() { for(unsigned int i=1;i<=10000;i++){ unsigned int index = i/32; unsigned int bit = i%32; num[index]|=1<

转载地址:http://pbvvi.baihongyu.com/

你可能感兴趣的文章