Как оптимизировать алгоритм сортировки файла?
Я не специалист по сортировке, но если быстро перебрать исходный (первый) файл и сделать копию только из второго столбца и номера строки — больше данных влезет в память (это второй файл).
А по окончанию сортировки создать третий файл с результатами, выдергивая номера строк и з отсортированного второго файла, и забирая соответствующую строку из первого.
ещё нужно рассмотреть ситуацию, когда в файле находятся всего 3 строки, каждая размером по 650МБ. вы не сможете прочитать ни одну строку целиком, и нужно делать так, как говорит rowdyro