Вы можете сделать это еще более эффективно, используя вариант быстрой сортировки, за время O (n), где 'n' - размер списка на диске.(в данном случае триллион)
Все, что вам нужно сделать, это:
Найти миллионное наименьшее число, разделив диск несколько раз на все более мелкие разделы.Это занимает время O (n).
Возьмите его и другие 999 999 целых чисел, которые разобрал раздел, и поместите их в ОЗУ.Вы закончили.
Наименьший миллион целых чисел не будет отсортирован, но он будет наименьшим миллионом.
Если затем вы хотите отсортировать наименьший миллион, онзаймет время O (m log m), где в этом случае «m» - это миллион.
Пространство без затрат, время O (n), работает с нецелыми значениями.Наслаждаться.:)