HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Флуд > Сортировка массива строк ( больше 2 млн позиций )
За разумное время
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Unhappy Сортировка массива строк ( больше 2 млн позиций )

Куку фсем кисям данного форума! Имею окала трёх миллионов строк разной длины ( имена файлов, записаны в блоки по пять мегабайт ( могу поменять их размер на какой угодно ) ). Из них нужно выбрать все записи с определённым расширением ( расширения храню в отдельной области памяти ). И тута у мну вообще моск вскипел ( хотя у мну ево и нет ). Как лучше и проще сделать за разумное время ( вообще не представляю, какое тут время может быть разумным )? Вычислять сначала хеши расширений, затем итерацией по каждй строке файлового блока вычислять налету хеши расширений файлов, и сравнивать уже их? Или в кокую сторону капать тута? Совсем запутолсо. Добролюди, памахити советом позязя! Фсем лафки чмафки авансом
З.Ы. Без использования баз данных, они тута вообще ни в каком виде не учавствуют. Пишу на дульфи, но это для справки. Никаких питонов, рубинов на рельсах и прочей непотребщины с кучей встроенных сартировок на все случаи жызни ( и смерти ) не имеем.

Отредактировано domded 17-05-2019 в 17:53

Сообщить модератору | | IP: Записан
Сообщение: 179019
Метки: хихи

Старое сообщение 17-05-2019 17:51
- За что?
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Позови Мастера на фриланс, сортировка строк - его конёк!

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 179021

Старое сообщение 17-05-2019 18:53
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32191
Нанёс повреждений: 392 ед.

Рейтинг



За разумное время обычно предполагается сортировать что-то такое, что надо выполнять не один раз, а прямо тысячу раз в секунду. А если надо всего один раз, то любое время будет разумным. В разумных пределах конечно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 179024

Старое сообщение 17-05-2019 19:22
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


А зачем тут хэши? Просто пройтись линейно по списку и выбрать те, у кого нужные расширения, разве нельзя?

Цитата:
Ghoul [BB] писал:
Позови Мастера на фриланс, сортировка строк - его конёк!

Но строки должны обязательно быть в delta.lst.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 179026

Старое сообщение 17-05-2019 19:45
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



А на каком этапе-то здесь сортировка?

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 179027

Старое сообщение 17-05-2019 20:24
- За что?
AntiPlayer
Highway to Hell

Дата регистрации: May 2006
Проживает: Смоленск
Сообщений: 1015
Возраст: 33

Рейтинг



Цитата:
Ghoul [BB] писал:
Позови Мастера на фриланс, сортировка строк - его конёк!

Мастер за делфи и с лестницы спустить может

Цитата:
XaeroX писал:
А зачем тут хэши? Просто пройтись линейно по списку и выбрать те, у кого нужные расширения, разве нельзя?

Вот и я так подумал.

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

__________________
I tell you to enjoy life

Сообщить модератору | | IP: Записан
Сообщение: 179028

Старое сообщение 17-05-2019 20:34
- За что?
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Дядя Миша
XaeroX
Вот это вот как раз и загвоздка. Данные надо передать в последующую обработку как можно быстрее, такое условие ( оно изменению не подлежит, заказчику приспичило выпустить очередной универсальный всемогутер-индексатер-архиватер всего шо только можно, да и ещё со световой скоростью ). Построчное сравнение ( даже если делать чисто сишными средствами memcmp/функцией прохода по массиву, сравнивая всё это дело посимвольно с конца ) займёт туеву хучу времени, на таком количестве данных это ощущается остро, данный лист изначально формируется порядка 15-20 минут стандартными виндовыми FindFirstFile, и это я ещё свои контейнеры-бассейны туды впилил, ибо дульфя по умолчанию не умеет в списки с фиксированным пулом. Поэтому и спрашиваю у тех, кто разбирается в сложности алгоритмов, как с этой ситуации выйти. На форумах даже англоязычных я способов ускорения для такой задачи найти не смог
Если это и не поможет, то придётся писать свой парсер для Жырнича32 и НТФС. Может выиграю на изначальном построении дерева, но и это ещё бабка на двоих нассала, информацию по файловым системам приходится зубами выгрузать из мсдн. Прямо-руки опускаются.
thambs
Сортировка мне ещё в идеале нужна по размеру файла. Но я так подозреваю ( аки та собака ) что на таком объёме данных это невозможно.

Отредактировано domded 17-05-2019 в 21:40

Сообщить модератору | | IP: Записан
Сообщение: 179029

Старое сообщение 17-05-2019 21:31
- За что?
Ghoul [BB]
МРАЗЬ ОПАСНАЯ

Дата регистрации: Jan 2006
Проживает: ...и прожигает...
Сообщений: 2567

Рейтинг



Цитата:
XaeroX писал:
Но строки должны обязательно быть в delta.lst.


Пусть переименует исходник в дельта.лст, делов-то!

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

Сообщить модератору | | IP: Записан
Сообщение: 179030

Старое сообщение 17-05-2019 22:11
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32191
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
domded писал:
Построчное сравнение

так оно тебя ждёт в любом случае. Ну хочешь - сравнивай адреса в памяти, только ты так не найдешь одинаковые расширения.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 179031

Старое сообщение 18-05-2019 06:32
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 13:49. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Флуд > Сортировка массива строк ( больше 2 млн позиций )
За разумное время
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024