Предлагаю холивар: имеется текстовой файл размером в 10 метров, состоящий из неотсортированного массива чисел, в одной строке - одно число. Нужно прочитать исходный файл кусками по миллиону строк, отсортировать каждый кусок и записать его в отдельный временный файл. Потом нужно пробежаться по этим временным файлам и смержить все в итоговую сортировку в один результирующий файл. Смысл - в ограничении памяти, ее немного, поэтому используем дисковое пространство. Я наваял решение на питоне, которое выложу чуть попозже. На моей машинке 11-метровый файл (5 миллионов строк) перемалывается порядка минуты.
Финальная сортировка выглядит так:
f_output = open('output.txt', 'a')
for x in heapq.merge(*iters):
f_output.write(str(x)+'\n')
f_output.close()
Кто быстрее ?