Пример. Быстрая сортировка по возрастанию массива A из N целых чисел.
program Quick_Sort;
var A:array[1..100] of integer;
N,i : integer;
{В процедуру передаются левая и правая границы сортируемого фрагмента}
procedure QSort(L,R:integer);
var X,y,i,j:integer;
begin
X:=A[(L+R) div 2];
i:=L; j:=R;
while i<=j do
begin
while A[i]X do j:=j-1;
if i<=j then
begin
y:=A[i]; A[i]:=A[j]; A[j]:=y;
i:=i+1; j:=j-1;
end;
end;
if L < j then QSort(L,j);
if i < R then QSort(i,R);
end;
begin
write('количество элементов массива ');
read(N);
for i:=1 to n do read(A[i]);
QSort(1,n); {упорядочить элементы с первого до n-го}
for i:=1 to n do write(A[i],' '); {упорядоченный массив}
end.
2008-04-09 • Просмотров [ 15508 ]
К примеру мне (при знании более 4-х языков) для обьяснения работы алгоритма (пишу по этому курсовую работу) очень подходит код на языке Pascal (хотя, это вполне применимо и для Delphi). Кому реально нужно, тот розберется в коде.
Автору спасибо)