内容会持续更新,有错误的地方欢迎指正,谢谢!
题目
题1:在2.5亿个整数找出不重复的整数,内存不足以容纳着2.5亿个整数。
题2:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
题3:“游戏任务标记”的编程题,请见链接:
http://blog.youkuaiyun.com/billcyj/article/details/78948402
分析
要解决上面的问题,都需可以用Bitmap或2-Bitmap。
Bitmap
BitMap也就是位图
引出Bitmap
举一个小例子,有一个无序整形数组{8,4,9},也就占用内存3*4=12字节,这很正常,但如果有1亿个这样的数呢?1亿*4/(1024*1024*1024)=0.372G左右。如果对该数据做查找,那内存压力很大,我们想要高性能地解决这个问题,就得引出Bitmap。
Bitmap概念
一个byte占8个bit,如果每一个bit的值就是有或没有&#x