Помощь - Поиск - Пользователи - Календарь
Полная версия: файл записей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lida
Имеется база данных. Ее записи хранятся в файле.
Нужно реализовать возможность сортировки данных.
Первое что мне пришло в голову - это загрузить все записи из файла - в массив и отсортировать его. Но даже если я создаю массив из всего лишь 100 элементов, программа вырубается и пишет что стэк переполнен. А веть 100 записей в БД - это далеко не предел. Теоретически их может быть намного больше. Так как же их отсортировать?! (
volvo
Ну, можно читать данные в массив, хранящийся в куче (или массив указателей на записи), но это тоже может не решить проблемы. В любом случае будет ограничение - размер динамической памяти тоже не безграничен...

Остаются алгоритмы внешней сортировки... В частности - сортировка Неймана (слияний)... На форуме было, пользуйся поиском...
мисс_граффити
Да при желании к файлу можно "прикрутить" любую сортировку - хоть пузырьковую. Вопрос эффективности...
А так - в поиск, все решалось. Разными способами.
Lida
Цитата(volvo @ 10.09.2007 21:22) *

Ну, можно читать данные в массив, хранящийся в куче (или массив указателей на записи)

вот это наверно то что надо

Цитата(мисс_граффити @ 11.09.2007 1:53) *

Да при желании к файлу можно "прикрутить" любую сортировку - хоть пузырьковую.


а если мне надо чтобы файл оставался в своем первозданном неотсортированном
виде?
volvo
Чтобы не было "разговора ниочем", приведи описание структуры, и по какому (каким) полю (полям) тебе может понадобиться ее сортировать... У меня есть подозрение, что здесь вполне может хватить построения еще одного, индексного файла, и сортировки именно его, а потом прохода по индексам в исходном файле...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.