|
|
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Потребовалось сейчас найти в большом массиве строк дубликаты. Самое простое что пришло в голову: Код: plaintext 1. 2. Но полагаю есть что-то эффективнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:08 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
есть, отсортировать массив а потом сравнивать соседние элементы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:09 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
сортировать естественно нужно квик сорт, иначе оптимизация в трубу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:09 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Если изменять массив (сортировать) нежелательно, то используется вспомогательный объект - map, реализованный в виде хэш-таблицы или сбалансированного дерева. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:20 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Сбалансированное дерево -- по сути та же сортировка, только с б о льшим расходном памяти. Хеш-таблицы на больших массивах могут быть не эффективны, смотря что такое "большой" массив. Сортировка -- в подавляющем большинстве случаев оптимальный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:31 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
3кк записей. Сортировка, тогда какая? Я только пузырек и пирамидальную помню. Можно тогда при добавлении элемента проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:45 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Hett3 кк записей.3 миллиона что-ли? что за язык используется? Квик-сорт есть готовый много где. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 21:52 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Да 3 млн. Там в каждом элементе одно слово. Язык - Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 22:05 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
HettЯзык - Delphi.По первому посту не заметно :-) Решение: создаете TStringList, выставляете Sorted=True и добавляете свои 3 млн. строк. После этого в списке автоматически будут только уникальные значения. Анализируя число, возвращаемое методом Add, и свойство Count, можно сделать вывод о том, являлась ли добавляемая строка дублем. При желании можно поиграться свойством CaseSensitive. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 22:11 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
HettЯ только пузырек и пирамидальную помню. Пузырёк лучше забыть. Пирамидальная прокатит. Но если массив достаточно беспорядочен, то quicksort ощутимо лучше (да она и проще в реализации, чем пирамидальная). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 22:12 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
А такой вопрос, если сначала заполнить TStingList а потом sorted = true сделать, то он отсортирует? И как это по скорости будет? Быстрее чем сначала выставить и добавлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 22:26 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Hett, а попробовать самому религия не позволяет?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 22:32 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Уже пошел. Работает довольно быстро этот стрингЛист, устраивает. Спасибо за подсказку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2010, 22:38 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Три миллиона строк - в ТСтрингЛист это сурово. Главное чтобы завтра не пришло три миллиарда. А то выйдет конфуз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2010, 15:28 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
Можно Поиск дубликатов при помощи разного бесплатного софта. Скачай отсюда, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2010, 11:19 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
maytonТри миллиона строк - в ТСтрингЛист это сурово. Главное чтобы завтра не пришло три миллиарда. А то выйдет конфуз. Нынче память не 640 килобайт, однако =) Да и там в каждой записи - одно слово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 00:46 |
|
||
|
Поиск дубликатов
|
|||
|---|---|---|---|
|
#18+
HettНынче память не 640 килобайт, однако =) Да и там в каждой записи - одно слово. Это типичные рассуждения "плохого" девелопера. Не забудь указать в ТЗ что твой софт отбирает всю свободную память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2010, 01:19 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36829284&tid=1343478]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
193ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 548ms |

| 0 / 0 |
