Как отсортировать очень большой файл (100 ГБ) с целыми числами, по одному в каждой строке?

Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.

Короткий ответ

Что ответить на собеседовании

Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.

Подробный разбор

Ответ с пояснениями

Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.

Читайте числа порциями с учётом реального расхода памяти объектов, а не только размера текста. На стадии слияния храните текущий элемент каждого потока и последовательно записывайте минимум. Если файлов слишком много для лимита дескрипторов, делайте несколько этапов слияния. Сравнение должно быть числовым, не лексикографическим. Предусмотрите место для временных файлов, проверку входа и восстановление после прерывания.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее