Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужен алгоритм сортировки [D3, Win95/98]


Konstantin ©   (2003-02-09 16:37:00) 

Добрый день!

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


uw   (2003-02-09 17:21:00) [1]

Вот медленная сортировка:

procedure Sort(var a: array of Integer);
var
i, j: Integer;
t: Integer;
begin
for i := 1 to High(a) do
for j := i downto 1 do
if a[j] < a[j - 1] then begin
t := a[j - 1];
a[j - 1] := a[j];
a[j] := t;
end;
end;


___ALex___   (2003-02-09 17:12:00) [2]

открой обычный Turbo Pascal 7.0 там в экзамплах есть файл
QSORT.PAS - рекурсивный алгоритм быстрой сортировки


Романов Р.В.   (2003-02-09 16:45:00) [3]

http://delphibase.endimus.com/?action=viewtopic&topic=mathsort


uw   (2003-02-09 16:42:00) [4]

Это из модуля Classes.

procedure QuickSort(SortList: PPointerList; L, R: Integer;
SCompare: TListSortCompare);
var
I, J: Integer;
P, T: Pointer;
begin
repeat
I := L;
J := R;
P := SortList^[(L + R) shr 1];
repeat
while SCompare(SortList^[I], P) < 0 do
Inc(I);
while SCompare(SortList^[J], P) > 0 do
Dec(J);
if I <= J then
begin
T := SortList^[I];
SortList^[I] := SortList^[J];
SortList^[J] := T;
Inc(I);
Dec(J);
end;
until I > J;
if L < J then
QuickSort(SortList, L, J, SCompare);
L := I;
until I >= R;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо