Russian Qt Forum

Программирование => С/C++ => Тема начата: andrew_121 от Январь 16, 2008, 16:06



Название: Сортировка содержимого файла
Отправлено: andrew_121 от Январь 16, 2008, 16:06
День Добрый.
Есть задача: Отсортировать содержимое файла объёмом(> 4GB),
содержащего записи типа "short", без использования системных
вызовов вроде "mmap".
Подскажите плиз...


Название: Re: Сортировка содержимого файла
Отправлено: Tonal от Январь 16, 2008, 19:49
Кури внешнюю сортировку. Хорошо описана у того-же Кнута.

Не понял, что имелось в виду под записи типа "short"
Если сами записи большие, а сортировка идёт по небольшому ключу, то можно делать в два прохода:
Первый - собираем  по файлу все ключи и их сортируем в памяти как обычно.
Второй - перемещаем записи на свои места.


Название: Re: Сортировка содержимого файла
Отправлено: SLiDER от Январь 16, 2008, 23:37
Кури внешнюю сортировку. Хорошо описана у того-же Кнута.

Не понял, что имелось в виду под записи типа "short"
Если сами записи большие, а сортировка идёт по небольшому ключу, то можно делать в два прохода:
Первый - собираем  по файлу все ключи и их сортируем в памяти как обычно.
Второй - перемещаем записи на свои места.

Товарищь имел ввиду, что файл оооочень большой и в физическую память его не считать, а технологиями типа mmap (проэцирует файл в память) он пользоваться по чему-то не хочет. Ну в такой ситуации мне видиться только самостоятельная эмуляция этго процесса (mmap), через обычные функции чтения/записи файлов, но быстрее оно точно работать небудет.  :-\