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

Вниз

Необходим алгоритм или программа быстрой сортировки.   Найти похожие ветки 

 
MaximatorVeter   (2002-10-01 15:45) [0]

Если есть у кого под рукой.
Спасибо.


 
AL2002   (2002-10-01 15:50) [1]

быстрой сортировки чего? И в чём?


 
qube   (2002-10-01 15:51) [2]

http://algolist.manual.ru/sort/faq/q8.php


 
MBo   (2002-10-01 15:52) [3]

algolist.manual.ru
демо Thread и исходники VCL (поиск по quicksort)


 
BOA_KAA   (2002-10-01 15:53) [4]

Насколько я помню, этот код есть в Демосе к Дельфям там, где про потоки...


 
MaximatorVeter   (2002-10-01 16:17) [5]

ок


 
Dimka Maslov   (2002-10-01 18:13) [6]

http://delphibase.endimus.com/?action=viewfunc&topic=mathsort&id=10088


 
Kopetr   (2002-10-01 19:06) [7]

TList.Sort выполняет быструю сортировку, см. хелп


 
Jeer   (2002-10-01 19:30) [8]

Не всегда QuickSort есть quick.
Как ни странно..
Но если он нужен, то - classes.pas

procedure QuickSort(SortList: PPointerList; L, R: Integer;
...
procedure TList.Sort(Compare: TListSortCompare);
begin
if (FList <> nil) and (Count > 0) then
QuickSort(FList, 0, Count - 1, Compare);
end;

О чем уже сказано.


 
MaximatorVeter   (2002-10-01 20:58) [9]

ок


 
MaximatorVeter   (2002-10-02 20:12) [10]

Мне необходимо организовать ротации элементов коллекции между коллекциями по min/max значению какого-либо свойства.

Черт ...
А если я сортирую элементы коллекции, то когда меняем 2 элемента (объекта) местами, мы вынуждены перекопировать все их свойства. Если много свойств, то и сортировать может быть не выгодно.


 
Jeer   (2002-10-02 20:27) [11]

Связанный список.
Связи устанавливаются по order нужного св-ва.


 
vuk   (2002-10-02 21:16) [12]

С точки зрения сортировки коллекция действительно сильно не оптимальное решение. Если Вы не пишете компонент, то лучше коллекции не использовать. Здесь больше подойдет обычный TList - у него и метод имеется для быстрой сортировки. Если же все-таки компонент... Тогда можно попробовать удалить все элементы из коллекции, отсортировать их а потом добавить в порядке сортировки.


 
MaximatorVeter   (2002-10-04 00:04) [13]


> Jeer © (02.10.02 20:27)
> Связанный список.
> Связи устанавливаются по order нужного св-ва.


Подробнее, если можно.


 
MaximatorVeter   (2002-10-04 00:06) [14]

Может с указателями "поиграть"?


 
Jeer   (2002-10-04 00:26) [15]

Связанный список это структура данных (возможно разнородных) связь между последовательными элементами которых обеспечивается через указатели, в отличии от массивов, где элементы выстроены линейно (хотя тоже возможно через указатели)

Отсюда вывод
Type
Link = ^Node;
Node = record
Data: integer; // любая структура инф.данных
..
Next: Link;
End;

Сортируешь Data или что надо, а модифицируешь Next двух узлов, изменяемы в соответсвии с принятым алгоритмом сортировки.


 
MaximatorVeter   (2002-10-05 18:25) [16]

2Jeer
2vuk
Спасибо. Приемлимое для меня (и моих коллекций) решение здесь:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1033760917&n=0


 
MaximatorVeter   (2002-10-05 18:31) [17]

+ конечно QuickSort



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
1-78467
Groove
2002-10-12 16:03
2002.10.24
Как создать или удалить панель в run-time


8-78533
Карлсон
2002-06-28 00:07
2002.10.24
Про радар.


1-78411
саша
2002-10-15 12:28
2002.10.24
Как программно свернуить окно


1-78326
Supaplexor
2002-10-13 22:56
2002.10.24
Как использовать DLL?


1-78327
Mav
2002-10-14 13:05
2002.10.24
Help OLE.





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