Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.
Как отсортировать очень большой файл (100 ГБ) с целыми числами, по одному в каждой строке?
Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.
Читайте числа порциями с учётом реального расхода памяти объектов, а не только размера текста. На стадии слияния храните текущий элемент каждого потока и последовательно записывайте минимум. Если файлов слишком много для лимита дескрипторов, делайте несколько этапов слияния. Сравнение должно быть числовым, не лексикографическим. Предусмотрите место для временных файлов, проверку входа и восстановление после прерывания.