如何快速判断这几个数是否在那40亿个数当中?

来源:互联网 发布:益盟按部就班指标源码 编辑:程序博客网 时间:2024/05/21 06:52

给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?


unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。


摘自:http://blog.csdn.net/he_haiqiang/article/details/7914983

0 0