![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| foxmalder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.3.2012 Репутация: нет Всего: нет |
Добрые люди помогите пожалуйста советами)
задача такая: например, есть несколько файлов объемом 4-6 гб текстовых. их надо очистить от дубликатов слов и отсортировать. подскажите как максимально использовать оперативную память для этого |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Читаешь блоками по XXX мегабайт, удаляешь из блоков памяти лишнее и пишешь обратно в новый файл.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Читаешь блоками (рамеры блока не фиксированы, границы - по границам слов), каждый блок сортируешь, очищаешь от повторений, записываешь во временный файл. Затем сортировка слиянием (с одновременным удалением дубликатов), удаление временных файлов.
ЗЫ: если все слова (по одному) влезают в память - читаешь последовательно и формируешь отсортированный список слов. Это сообщение отредактировал(а) math64 - 15.10.2012, 07:18 |
|||
|
||||
| Silent |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 3.10.2006 Репутация: нет Всего: 9 |
MapReduce тебе в помощь
|
|||
|
||||
| Zhunko |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 4.11.2009 Репутация: нет Всего: нет |
Ещё, в качестве инструмента, mapping можно порекомендовать. Можно работать с файлом, как будто он весь в памяти.
Двигаешь окно проекции по файлу и читаешь, что надо. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |