IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Сотртировка в файлах, Сортировка записей в типизированных файлах
сообщение
Сообщение #1


Новичок
*

Группа: Ожидающие
Сообщений: 27
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Подскажите пожалуйста наилучший алгорит сортировки записей в типизированном файле. фаил безразмерный, и желательно не использовать буферные файлы.

В FAQ прочитал про методы сортировок, но они все сортировки массивов, а нет ли какой-нибудь сортировки, предназначенной для сортировки типизированных файлов.

Или единственный способ - это с помощью указателя представлять фаил, как массив и использовать приведенные выше сортировки
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Наилучшего алгоритма вообще в природе не существует. Могут быть наилучшие в каком-то конкретном случае.
Непонятно, что такое безазмерный файл.
Если допорлнительые файлы использовать нельзя, то сортировать можно, естественно, только в оперативной памяти. Т.е.:
1. Считываешь файл.
2. Сортируешь.
3. Записываешь.
Можно, конечно, использовать memory-mapped file, но вряд ли это чем-либо удобнее.
И еще: если объем файла больше объема виртуальной памяти, то считать файл в память, разумеется, не получится.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Gendalf @ 16.12.2007 15:20) *

с помощью указателя представлять фаил, как массив и использовать приведенные выше сортировки

Указатели тут ни при чем. Используй процедуру Seek. В остальном - да, аналогично массивами. Другой вопрос, какой метод будет более эффективен именно для файлов..

Добавлено через 1 мин.
Цитата(andriano @ 16.12.2007 15:40) *

Если допорлнительые файлы использовать нельзя, то сортировать можно, естественно, только в оперативной памяти.
Конечно, нет (см. мой пост выше)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Lapp @ 16.12.2007 15:41) *
Конечно, нет (см. мой пост выше)
Гм...
Я понимаю, что "если нельзя, но очень хочется, то можно", но сколько времени это займет?
Хотя с академической точки зрения - да, достаточно, чтобы в ОП помещались два элеиента данных.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 16.12.2007 15:47) *

"если нельзя, но очень хочется, то можно", но сколько времени это займет?

Ответ должен соответствовать вопросу. Откуда ты знаешь - может, файл в на устройстве в оперативной памяти? Насчет скорости ты можешь предостеречь, если хочешь, но сначала - дай правильный ответ на поставленный вопрос.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Все правильно - недостаток дидактической практики: решения, которые я считаю крайне неэффективными, отбрасываются на уровне подсознания - "этого делать нельзя, и точка!" smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.09.2020 10:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name