处理大文件问题

对于一个很大的文件例如有1T,但是内存却只有120G,如何快速读取数据并找到top10 的数据?
1、对大文件进行分片。
2、给每个分片定义一个有序链表,链表按升序排列,第一个节点最小。
3、分配线程去读分片,首先读取前10个数据,存储到链表中,
4、然后继续往后读,每读一个,就和链表的首节点进行比较,如果小于首节点就跳过,如果大于首节点就往节点里面插入数据,插入完成后将首节点丢弃。
5、分配线程依次去读所有的分片,最后得到了每个分片一个链表。
6、归并每个链表最后得到一个有序的链表。

原文地址:https://www.cnblogs.com/junjiedeng/p/14611452.html