Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Сравнение строк для сортировки (Алгоритм)   Найти похожие ветки 

 
mOOx_ ©   (2004-07-13 16:03) [0]

Добрый день.
Вот какая задача возникла. Требуется отсортировать массив строк (список логов) в хронологическом порядке. Может кто подскажет быстрый алгоритм, а то мне кажется, что то, что пришло мне в голову, лучше вообще не пробовать реализовать :)
Заранее спасибо.


 
Тимохов ©   (2004-07-13 16:04) [1]

1. один лог - record имя+ дата
2. запихиваете это все в tlist
3. делаете sort


 
Digitman ©   (2004-07-13 16:17) [2]


> в хронологическом порядке


в этом самом "хренологическом порядке" подразумевать, очевидно. следует, что каждая строка в некоей фикс.позиции (где-то в начале строки) содержит метку времени фикс. длины ? ... хренология ведь - понятие тесно связанное с хреносом, т.е. со временем ... как кажется ...

ну и коль так, то класс TStringlist, имея готовые встр.алгоритмы сортировки, может при опред.раскладе избавить от необходимости изобретения очер.велосипеда ..


 
oldman ©   (2004-07-13 16:22) [3]

Гы... А ты их в массив записывай по мере поступления - они запишутся в хронологическом порядке...
:)))


 
mOOx_ ©   (2004-07-13 16:23) [4]

это мне в голову первоначально и пришло :). Только потом обратно из стринглиста в массив..., конечно я тут может и за доли секунды борюсь, но всетаки...
Но и на этом спосибо, порылся в ВЦЛ, вроде нашел :)...еще раз большое фенкс, буду эксперимантировать...
А может и вообще стоило без массивов, а сразу в лист... может кто со скоростью экспериментировал уже?


 
mOOx_ ©   (2004-07-13 16:25) [5]

я тоже так думал, но вот встретилось пару раз :(


 
Семен Сорокин ©   (2004-07-13 16:27) [6]


> А может и вообще стоило без массивов, а сразу в лист

вот это правильно будет см. [1].


 
Sandman25 ©   (2004-07-13 16:29) [7]

А в чем проблема с самостоятельной реализацией QuickSort?
Скоро уже для for I := 0 to N do будут компоненты искать... :(


 
mOOx_ ©   (2004-07-13 16:35) [8]

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


 
mOOx_ ©   (2004-07-13 16:35) [9]

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


 
Digitman ©   (2004-07-13 16:35) [10]


> А может и вообще стоило без массивов, а сразу в лист


если лог интенсивно обновляется, ни массивы ни стринг-листы, ни иные "ВЦЛ"-листы - не панацея


 
mOOx_ ©   (2004-07-13 16:38) [11]

Да не так уж и быстро - раз в день. Это логи ИИСа. Кстати, может и еще что подскажете вообще по проблеме. См. мой следующий вопрос.


 
Igorek ©   (2004-07-13 19:37) [12]


> Скоро уже для for I := 0 to N do будут компоненты искать...
> :(

С чем и боремся. :-)


> mOOx_ ©   (13.07.04 16:03)  

Вообще совет. Напиши раз и навсегда для себя универсальную быструю сортировку. В том смысле, что сортирует что угодно и требует только ф-цию сравнения. Хотя такая и есть во многих библиотеках.
А ф-цию сравнения ты можешь написать сам - выдирать из двух входных строк дату/время и сравнивать.

---
Ознакомься с шаблонными ф-циями в С++.


 
Думкин ©   (2004-07-14 07:23) [13]

Быстрая сортировка может реализовываться разно, при определенных оптимизациях по сравнению со стандартной(в VCL etc) можно добиться существенного ускорения. У меня при сортировке 50000 строк среднее число сравнений упало с 1 500 000 до 700-800 000. Это конечно далеко не лог, но все-таки.
Описано сие у Бакнелла, примеры на сайте www.diasoft.kiev.ua - как примеры к его книге.

Гы. Можно конечно БД какой-нить худой с индексами.



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

Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.821 c
4-1086780359
RoadStar
2004-06-09 15:25
2004.07.25
Как рисовать на чужом окне?


9-1080207016
GrayFace
2004-03-25 12:30
2004.07.25
Преимущества DirectX перед Canvas + TBitmap.ScanLine


1-1089259525
Артем К.
2004-07-08 08:05
2004.07.25
Форма без заголовка, без рамки, но может изменять размеры?


1-1089645817
ghg
2004-07-12 19:23
2004.07.25
дополнительные параметры в стандартных обработчиках событий


4-1086847821
Pro
2004-06-10 10:10
2004.07.25
Как узнать сколько времени процессы находятся в стадии выполнения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский