![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужен алгоритм сортировки [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;