百万量级的数据排序:

  • 任意大小:外排序,先将数据拆分到多个文件中,分别加载到内存中排序,然后再归并到一个文件里。实际上就是 LeetCode 23. 合并 k 个有序链表,需要用到最小堆。
  • 范围为 [0, 10000]:计数排序。

百万量级的数据查询在不在:

可以使用位图,前提是数据范围不超过内存大小。

百万量级的数据求 TopK:

数据流的 TopK 问题,维护一个大小为 k 的小根堆,然后分片读入数据,并更新堆。