Что-то меня некоторые лекции ввели в заблуждение http://video.google.com/videoplay?docid=-978892635109400080 . Там, довольно бородатый лектор, начинает перечислять какие качества нужны для внешней сортировки : среди них есть также inplace(сортировка на месте без привлечения дополнительной памяти). В качестве алгоритма он описывает сортировку слинянием, причем описывает на протяжении всей лекции, потом придумывает всяческие оптимизации(двойная буферизация, n-way merge).
Вопрос : как он делает слияние inplace, потому что известные алгоритмы слияния работают с O(n) дополнительной памяти, и для реализации его примера с 100 милионами записей, на последней итерации прийдется выделить второй файл такого же размера.
Как быть? Есть ли слияние с O(1) дополнительной памятью, и более-менее приспособленое для внешней сортировки?
Кстати он говорит что большинство СУБД используюут как раз внешнюю сортировку слиянием.