Не совсем. In-place merge sort это вариант сортировки слиянием, который не использует внешний буфер. При этом весь массив находится в памяти.
Для внешней сортировки (когда данные не помещаются в памяти) нельзя использовать те же алгоритмы, это будет слишком медленно. Этот алгоритм — внешняя сортировка, точнее, её вариант, не требующий буфера на диске. Он может пригодится, например, если вам нужно отсортировать 980Гб данных на терабайтном диске (хотя это и займет кучу времени, судя по всему).
То есть, получается сложность O(N*S*log(N/S)). Многовато…
С помощью блочного in-place merge улучшить её, конечно, не получится: при поиске следующего блока придётся проходить по всему файлу, а чтение первой и последней записи работает ненамного быстрее, чем чтение блока целиком.
Впрочем, есть и другой, более простой вариант in-place merge sort. Правда, использовать его для файла не очень удобно.
Но должно быть легко реализовать обычный quicksort: при разделении очередного фрагмента подгружаете в память его начало и конец, а потом двигаете их навстречу пока они не сомкнутся. Когда маленький фрагмент умещается в память — сортируете его там целиком. Получится O(S*log(S)) чтений/записей блока.
Внешняя сортировка с O(1) дополнительной памяти