Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Сортировка типизированного файла


Автор: 14SatanA88 6.10.2011, 18:10
Доброго времени суток, уважаемые программеры.

Необходимо быстро отсортировать типизированный файл. Тип данных - целое число размером 4 байта. Файл может быть очень большого размера, поэтому задача для меня стала проблемной. В память забрать массив не могу, слишком много памяти надо сожрать. Поэтому очень рассчитываю на Вашу помощь.

Вообще хотелось бы увидеть код (уверен, для гуру это как два байта переслать), но в крайнем случае посоветуйте хотя бы эффективный для моей задачи (например, файл содержит миллиард чисел, то есть ориентировочно он 4 Гб) алгоритм сортировки.

Автор: t_gran 9.10.2011, 16:53
14SatanA88, на данный момент у меня нет свободного времени, чтобы написать код, но могу поделиться тем, как бы я сделал:

1. Загружаем в оперативную память как можно больше данных (100 Мб и выше).
2. Сортируем данные, используя алгоритм http://ru.wikipedia.org/wiki/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0.
3. Выгружаем отсортированные данные в отдельный (временный) файл.
4. Возвращаемся в пункт 1, до тех пор, пока не закончится файл, который необходимо обработать.
5. Выполняем http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%BB%D0%B8%D1%8F%D0%BD%D0%B8%D0%B5%D0%BC всех созданных временных файлов.


Автор: 14SatanA88 11.10.2011, 19:53
спасибо. уже так и сделал. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)