2011年12月9日

海量数据处理面试题

摘要: 有2.5E个整数数据,找出其中重复的,给定的内存是600M。由于题目描述的不够清晰,现在假定整数指的是int32,其中有正有负有零,范围就是int32的范围。可以用编程珠玑里的位图来处理,由于内存只有600M,刚好可以将数据分作正,负和0来处理,这个范围是两个2^31,那就是一次处理位图占用512M的内存。之前我用byte数组表示位图,有很多繁琐的步骤和数据结构,在分析博客园其他大牛的文章和手头资料之后决定使用BitArray来处理。总共需要两个位图,一个标志出现过的整数,一个标志这个整数是重复出现的。程序分作数据生成和处理两个部分。处理数据的时候程序大概占用了500多M。时间用的还蛮多的,占 阅读全文

posted @ 2011-12-09 22:30 yukl1n 阅读(2630) 评论(0) 推荐(2) 编辑

导航