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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
8-78537
Groove
2002-06-27 01:38
2002.10.24
Звук отстаёт от видео =((


7-78699
BigMan
2002-08-15 15:39
2002.10.24
Проблемы с FastReport 2.3


14-78585
Esu
2002-10-01 20:55
2002.10.24
[Анти]киллер


7-78697
ed30
2002-08-15 10:48
2002.10.24
Зависание приложения


3-78291
Allo
2002-10-03 14:48
2002.10.24
InterBase 7.0 Setup