Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.11;
Скачать: CL | DM;

Вниз

Быстрый StringList   Найти похожие ветки 

 
Lfx   (2002-03-29 13:18) [0]

Добрый день, Мастера!

Не подскажет ли кто-нибудь, где достать аналог TStringList, в котором был бы быстрый IndexOf? Ну чтобы он индексировал деревом или т.п.?

Спасибо.


 
Digitman ©   (2002-03-29 13:33) [1]

Не найдешь ты такого. И не ищи. Создать индекс по строкам нефиксированной длины в принципе нереально.

А вот отсортировать в порядке возрастания строки в TStringList перед IndexOf() не помешало бы. В ряде случаев это дает некоторый выигрыш во времени поиска.


 
MBo ©   (2002-03-29 13:47) [2]

Если TStringList сортирован, IndexOf ищет двоичным поиском, а не простым перебором. Быстрее может быть только хэширование, но при этом (в простых реализациях) теряется возможность динамического изменения размера списка.
Как вариант (если нельзя сортировать данные) можно попробовать завести второй, сортированный список, в Objects которого хранить номер строки в исходном списке. Конечно, накладные расходы значительны, но если поиск выполняется намного чаще, чем добавление, на это можно пойти.


 
Lfx   (2002-03-29 13:49) [3]

Уважаемый Digitman!

Спасибо за совет. Сортировка действительно ему помогла.



Страницы: 1 вся ветка

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-32723
LazorenkoX
2002-03-29 22:55
2002.04.11
Маус (только не обижайтесь)


4-33008
HardTouch
2002-02-11 02:54
2002.04.11
как показывать иконки программных и других (зарегистрированных) форматов файлов


1-32737
sany
2002-03-30 06:34
2002.04.11
Позалуйста, пришлите мне DsgnIntf.dcu


1-32757
Дима2
2002-03-30 18:22
2002.04.11
Задержка


3-32628
IronHawk
2002-03-17 17:36
2002.04.11
Как лечить месагу