在2.5億個整數中找出不重復的整數,注,內存不足以容納這2.5億個整數。
方案1:
采用2-Bitmap(每個數分配2bit,00表示不存在,01表示出現一次,10表示多次,11無意義)進行,共需內存2^32 * 2 bit=1 GB內存,還可以接受。然后掃描這2.5億個整數,查看Bitmap中相對應位,如果是00變01,01變10,10保持不變。所描完事后,查看bitmap,把對應位是01的整數輸出即可。
方案2:
也可采用分治,劃分小文件的方法。然后在小文件中找出不重復的整數,并排序。然后再進行歸并,注意去除重復的元素。