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

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

Рейтинг



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

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

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

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

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

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

Рейтинг



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

__________________
Видел я в каком-то фильме,
В каком-то старом фильме,
Как льётся солнце на золотые пляжи,
Hо врядли вспонмю, теперь я врядли вспомню.
Дождливый полдень мне не подскажет...

Где-то за семью морями есть золотые страны,
Круглый год лето, улыбки и бананы.
Сегодня ночью я побываю там,
Если опять не кончился феназепам.

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

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

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

Рейтинг



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

__________________
My Projects: download page

В действительности всё может оказаться иначе чем на самом деле.

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

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

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 29442
Нанёс повреждений: 482 ед.
Возраст: 32

Рейтинг



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


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

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

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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.

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

Старое сообщение 17-05-2019 19:45
-
thambs
GNU/Hurt

Группа: Опытный
Дата регистрации: Mar 2006
Проживает: (void)
Сообщений: 4906

Рейтинг



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

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

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

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

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

Рейтинг



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

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

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

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

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

__________________
I tell you to enjoy life

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

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

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

Рейтинг



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

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

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

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

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

Рейтинг



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


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

__________________
Видел я в каком-то фильме,
В каком-то старом фильме,
Как льётся солнце на золотые пляжи,
Hо врядли вспонмю, теперь я врядли вспомню.
Дождливый полдень мне не подскажет...

Где-то за семью морями есть золотые страны,
Круглый год лето, улыбки и бананы.
Сегодня ночью я побываю там,
Если опять не кончился феназепам.

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

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

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

Рейтинг



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

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

__________________
My Projects: download page

В действительности всё может оказаться иначе чем на самом деле.

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

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



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


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

Временная зона GMT. Текущее время 15:17. Новая тема    Ответить
  Предыдущая тема   Следующая тема
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 - 2019