![]() |
|
Модераторы: bsa |
![]()
|
|
| DigiLab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Имеется пронумерованные отсортированные текстовые файлы, помогите составить алгоритм их слияния, не нарушая сортировки.
А, вообще, задание такое:
Половина уже готова, а вот слияние файлов не могу понять как сделать... |
|||
|
||||
| IValdemar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 10.1.2012 Репутация: нет Всего: нет |
Если я правильно понял то у тебя уже есть n-е количество файлов, отсортированных по длине строк. Вот процедура слияния для 2х файлов. Расширить ее на несколько файлов будет не сложно.
|
|||
|
||||
| DigiLab |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Если я не ошибаюсь, в предложенной процедуре слияния, считывание идет по длине. Но нужно еще учитывать содержимое строк, т.к. они все отсортированы.. в каждом файле содержится строка длины не более размера буфера: У нас в универе препода наше творчество на плагиат тестируют. Блин, если поисковик проиндексирует код, то мне баллы снимут))) Вот код, некоторые комментарии морально устарели)):
|
||||
|
|||||
| NoviceF |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Какова структура файлов? Есть ли там вообще переводы строки, или всё содержимое записано одной строкой? Если строка одна, или же, если наличие строк не указано в условиях, может просто использовать merge? http://cplusplus.com/reference/algorithm/merge/ И что значит "не нарушая сортировки"? Файлы должны быть "склеены" начало одного к концу другого, или объединены с помощью сортировки слиянием? |
|||
|
||||
| DigiLab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Поступает текстовый файл, с любым текстом в т.ч. и с 'переводами'. Кол-во строк задается пользователем. Строки в нашем случае - массив символов кол-во которых, задается размером буфера. Затем каждая строка сортируется и пишется по файлам Fnnn.txt. а затем файлы объединяют, по два, в новые файлы не нарушая сортировки. Это так нам препод сказал, хотя я по другому понимаю задание. |
|||
|
||||
| IValdemar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 10.1.2012 Репутация: нет Всего: нет |
У тебя же указано: Так сливать их надо по длине строк или еще и лексикографически? Если нужно еще и лексикографическое сравнение достаточно расширить сравнение строк: если они одной длины записываем ту что лексикографически меньше. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |