海量数据中找出不重复的元素

BitMap

如果是纯数字就可以用BitMap用两位表示一个数字的状态,00代表没有出现过,01代表出现一次,11 代表出现过多次,如果一共2.5亿个数字的话,一共5亿位,共占不到60M内存。

MapReduce框架

如果不是纯数字的话,需要用HashMap来统计那些没有重复的元素,此时如果在一台电脑上完成不了的话,就需要在多台电脑上进行操作,此时可用MapReduce的概念来完成这个工作。

海量数据,判断一个新的数字是否存在

BitMap

用一个bit代表一个数字,0表示不存在,1表示存在,这样的效率是O(N)

珠玑编程

O(logN)