Имеется база данных. Ее записи хранятся в файле.
Нужно реализовать возможность сортировки данных.
Первое что мне пришло в голову - это загрузить все записи из файла - в массив и отсортировать его. Но даже если я создаю массив из всего лишь 100 элементов, программа вырубается и пишет что стэк переполнен. А веть 100 записей в БД - это далеко не предел. Теоретически их может быть намного больше. Так как же их отсортировать?! (
Ну, можно читать данные в массив, хранящийся в куче (или массив указателей на записи), но это тоже может не решить проблемы. В любом случае будет ограничение - размер динамической памяти тоже не безграничен...
Остаются алгоритмы внешней сортировки... В частности - сортировка Неймана (слияний)... На форуме было, пользуйся поиском...
мисс_граффити
11.09.2007 2:53
Да при желании к файлу можно "прикрутить" любую сортировку - хоть пузырьковую. Вопрос эффективности...
А так - в поиск, все решалось. Разными способами.
Цитата(volvo @ 10.09.2007 21:22)

Ну, можно читать данные в массив, хранящийся в куче (или массив указателей на записи)
вот это наверно то что надо
Цитата(мисс_граффити @ 11.09.2007 1:53)

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