Вот в этих фазах, особенно в последней, смысла совсем не вижу.
Тут еще подумалось, вот в q есть встоенная функция, умеющая быстро сотрировать большие файлы. Если вдуг оказалось бы, что она быстрее всех представленных, как бы ее переписывалт буква в букву?
Насчет std::sort тоже не уверен в данных условиях (кстати, почему qsort тем более? Это же одно и то же практически). Но во времена, когда 640K хватало каждому, забавлялся с сортировкой. Лучшие результаты получались как раз с quicksort. Тогда приходилось сложную схему пейджинга городить, а сейчас можно просто замапить файл.