Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ файл записей

Автор: Lida 10.09.2007 22:17

Имеется база данных. Ее записи хранятся в файле.
Нужно реализовать возможность сортировки данных.
Первое что мне пришло в голову - это загрузить все записи из файла - в массив и отсортировать его. Но даже если я создаю массив из всего лишь 100 элементов, программа вырубается и пишет что стэк переполнен. А веть 100 записей в БД - это далеко не предел. Теоретически их может быть намного больше. Так как же их отсортировать?! (

Автор: volvo 10.09.2007 22:22

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

Остаются алгоритмы внешней сортировки... В частности - сортировка Неймана (слияний)... На форуме было, пользуйся поиском...

Автор: мисс_граффити 11.09.2007 2:53

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

Автор: Lida 12.09.2007 22:36

Цитата(volvo @ 10.09.2007 21:22) *

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

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

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

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


а если мне надо чтобы файл оставался в своем первозданном неотсортированном
виде?

Автор: volvo 12.09.2007 22:42

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