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

Вниз

Algoritm proverki povtorov   Найти похожие ветки 

 
lensky   (2002-08-17 20:02) [0]

Ideia, nushno otseivat" povtory strok


var
ListedDomains : TStringList;

function TFrame1.AddDomain(name: string): integer;
begin
if ((name<>"") and (ListedDomains.IndexOf(name)=-1)) then
begin
ListedDomains.Add(name);
DoSomething;
end
else Result:=0;
end;


S ukazanoi proverkoi, pri liste iz 8000 strok, rabotaet na 40 secund dol"she na moem skromnom kompe...
Est" li bolie optimal"niy metod dlia otseivan"ia odinakovih strok?


 
wicked   (2002-08-17 20:11) [1]

для твоего случая придуманы свойства
Sorted - вставка записей в определённом порядке и контроль дубликатов строк... установи его в true...
Duplicates - поведение при вставке дубликата... установи его в dupIgnore...

подробности в справке...


 
lensky   (2002-08-17 21:02) [2]

da, spasibo, horoshaia ideia, tol"ko Duplicates dolshen bit" dupError, tk mne ne nushen sam stringlist, a nushno poniat" bila li takai strochka voobshe ili net, a s dupIgnore etogo ne sdelat" IMHO


 
lipskiy   (2002-08-18 00:10) [3]

Для исключения дупликатов я использую следующий алгоритм (придумал сам, поэтому он не обязательно оптимален, но работает быстро).
Во-первых, отсортируй список.
Потом создай список-буфер (второй экземпляр).
И переписывай из одного списка в другой, по условию, что следующая строка не равна предыдущей.
Все просто.


 
lipskiy   (2002-08-18 00:12) [4]

Есть правда один момент - сортировка стринглиста не чувствительна к регистру и она не отсортирует сначала большие, потом маленькие, поэтому при сравнении строк надо делать LowerCase.


 
MrBeer   (2002-08-18 04:03) [5]

esli ti naprimer sostavlaesh etot svoi list iz vneshego iztochnika, to variant s sortirovkoi i udaleniem pri dostatochno bolshih razmerah dannih daleko ne samii optimalnii (osobenno esli mnogo dublikatov). V etom sluchae namnogo bistree budet vospolzovatjsa hash listom. (bolshe informacii na google.com)

best regards.



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

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

Наверх




Память: 0.45 MB
Время: 0.005 c
3-95658
Sirus
2002-08-08 08:07
2002.08.29
Сохранение отчета TQuickRep программно...


3-95639
Gunya
2002-08-07 16:01
2002.08.29
Как удалить (не пометить, а совсем) запись в используемом dbf ?


1-95821
lipskiy
2002-08-12 22:30
2002.08.29
Задачка на засыпку - Вставка в TWebBrowser картинки из ресурсов?


6-95922
sergling
2002-06-19 22:39
2002.08.29
Кто писал шлюзы, поделитесь опытом


14-95938
ArtGamer
2002-08-02 19:28
2002.08.29
Как соединить 2 компа по витой паре?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский