首先想到的是 MapReduce 的思路,拆分小文件,分批排序,最后合并。 Q:如何尽可能多的利用内存呢? A:用位图法的思路,对数字按顺序映射。(对映射方法要有基本的了解) Q:如果在排好序之后,还需要快速查找呢? A:可以做索引,类似 Redis 的跳表,通过多级索引提高查找速度。 Q:索引查找的还是文件。要如何才能更多地利用内存呢? A:那就要添加缓存了,把读取过的数字缓存到内存中。 Q:缓存应该满足什么特点呢? A:应该使用 LRU 型的缓存。 外部排序 todo 位图 todo