Главная страница
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.02 c
3-78216
RomanIz
2002-09-30 19:22
2002.10.24
Таблица в памяти


1-78425
neXt
2002-10-15 13:05
2002.10.24
Вывод HTML текста


1-78479
olookin
2002-10-13 10:37
2002.10.24
Назеачить Integer для Set of..


14-78663
aga
2002-10-04 20:16
2002.10.24
Фонт


3-78241
diwin
2002-10-01 18:58
2002.10.24
теоретический вопрос по Query