Ден |
Отправлено: 08.11.2005, 22:57 |
|
Не зарегистрирован
|
Имеем CB 6, надо отсортировать список размером более 100мб примерно 2000000 записей в формате .txt
Гружу это дело в ListBox, открывает часа 3. Простенький код сортировки по выкидыванию дублей работает сутки.
Какие есть методы оптимизации. Что можете посоветовать ?
Уж очень долго, это на железе AMD64 3000+ 1гб оперативы
|
|
Grigoriy |
Отправлено: 09.11.2005, 02:51 |
|
Мастер участка
Группа: Участник
Сообщений: 381
|
QUOTE (Ден @ 08/11/2005, 22:57) | Имеем CB 6, надо отсортировать список размером более 100мб примерно 2000000 записей в формате .txt
Гружу это дело в ListBox, открывает часа 3. Простенький код сортировки по выкидыванию дублей работает сутки.
Какие есть методы оптимизации. Что можете посоветовать ?
Уж очень долго, это на железе AMD64 3000+ 1гб оперативы |
Методом быстрой сортировки
|
|
Vlad |
Отправлено: 09.11.2005, 08:51 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Во первых не нужно грузить в ListBox! Сначала сортируешь, потом только уже выводишь в ListBox. |
|
Георгий |
Отправлено: 09.11.2005, 09:19 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
кошмар...
используя fstream грузим файл в массив строк CODE | std::vector<std::string> и сортируем std::sort | а визуальные компоненты (вроде Listbox) для обработки данных не очень приспособлены |
|
Gedeon |
Отправлено: 09.11.2005, 13:45 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
а мы легких путей не ищем
Думать навеное запретили
(Смайлика не хватает для выражения эмоций) а ашер женится предлагал от безделия, попробовал — не помогло.
|
|
Георгий |
Отправлено: 09.11.2005, 23:20 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
кстати, если стоит задача сделать программу отсеивающую дублирующиеся номера (например из телефонного справичника), то можно сберечь 99.9MB ОЗУ и на 99,9% уменьшить время работы алгиритма. к сожалению время загрузки данных в ОЗУ не удастся уменьшить. |
|
Asher |
Отправлено: 10.11.2005, 09:46 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
QUOTE | кстати, если стоит задача сделать программу отсеивающую дублирующиеся номера (например из телефонного справичника), то можно сберечь 99.9MB ОЗУ и на 99,9% уменьшить время работы алгиритма |
'Жемчужины программирования" рулят
QUOTE | ашер женится предлагал от безделия, попробовал — не помогло. |
Это же только первая стадия к просветлению.
Теперь надо заводить ребенка.
|
|
Gedeon |
Отправлено: 10.11.2005, 11:05 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Тоже не помогает
|
|
Asher |
Отправлено: 10.11.2005, 11:19 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Даже не знаю что и сказать.
Наверное только одно — Повезло тебе.
|
|
Георгий |
Отправлено: 11.11.2005, 00:47 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
QUOTE (Asher @ 10/11/2005, 10:46) | QUOTE | кстати, если стоит задача сделать программу отсеивающую дублирующиеся номера (например из телефонного справичника), то можно сберечь 99.9MB ОЗУ и на 99,9% уменьшить время работы алгиритма |
'Жемчужины программирования" рулят
|
очень рулят — чуть больше года назад, под впечатлением этой книжки, сделал fifo буфер состоящий из уникальных элементов с постоянным временем вставки, удаления, проверки наличия элемента — совместил хэш, кольцевой список и массив
кстати, Ден, посмотри "Жемчужины программирования" в ней очень эффективно решена твоя задача |
|
Ден |
Отправлено: 11.11.2005, 03:01 |
|
Не зарегистрирован
|
QUOTE (Георгий @ 09/11/2005, 09:19) | кошмар...
используя fstream грузим файл в массив строк CODE | std::vector<std::string> и сортируем std::sort | а визуальные компоненты (вроде Listbox) для обработки данных не очень приспособлены |
Не то чтобы я совсем не умел программировать, както к визульным привязался.
Но вот с таким положением дел не знаком std::vector , может кто подскажет где пример использования этих векторов можно посмотреть ? |
|
vvoid |
Отправлено: 11.11.2005, 14:14 |
|
Машинист паровоза
Группа: Участник
Сообщений: 171
|
Ребят, а где взять эти ваши "Жемчужини..." ?
|
|
Asher |
Отправлено: 11.11.2005, 15:24 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Жемчужины программирования. 2-е издание.
Дж.Бентли
ISBN: 5-318-00715-5
Библиографическая информация: Спб.: Питер, 2002. — 272с.
У меня бумажная. Брал в книжном.
|
|
vvoid |
Отправлено: 11.11.2005, 17:06 |
|
Машинист паровоза
Группа: Участник
Сообщений: 171
|
Нашел электронную, но на английском, если кому надо — скажите, куда её деть.
|
|
Asher |
Отправлено: 11.11.2005, 17:32 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Вот на русском.
Жемчужины программирования
Нашел навскидку, качество сканирования не смотрел.
Примеры лучше скачать с сайта издательства. Они там свободно лежат.
|
|
vvoid |
Отправлено: 11.11.2005, 19:40 |
|
Машинист паровоза
Группа: Участник
Сообщений: 171
|
Классно!!! Похоже книга там совсем даже и не отсканеная, а в нормальном html . Елси так — вытяну, и попробую склепать толковый *.chm.
Получится — поделюсь с желающими
|
|