Быстрая сортировка (QuickSort)
Программа к учебнику информатики для 10 класса К.Ю. Полякова и Е.А. Еремина. Глава 8. Программа № 44.
Вход: нет
Результат: После сортировки: 6 34 44 55 67 78 82
program selectSort;
const N = 7;
var A: array[1..N] of integer;
i: integer;
procedure qSort(nStart, nEnd: integer);
var L, R, c, X: integer;
begin
if nStart >= nEnd then
Exit;
L:= nStart;
R:= nEnd;
X:= A[(L+R) div 2];
while L <= R do
begin { разделение }
while A[L] < X do
L:= L + 1;
while A[R] > X do
R:= R - 1;
if L <= R then
begin
c:= A[L];
A[L]:= A[R];
A[R]:= c;
L:= L+1; R:= R-1
end;
end;
qSort(nStart, R); { рекурсивные вызовы }
qSort(L, nEnd);
end;
begin
A[1]:=78;
A[2]:=6;
A[3]:=82;
A[4]:=67;
A[5]:=55;
A[6]:=44;
A[7]:=34;
writeln ( 'До сортировки:' );
for i:=1 to N do
write ( A[i], ' ' );
qSort(1, N);
writeln;
writeln ( 'После сортировки: ' );
for i:=1 to N do
write ( A[i], ' ' );
end.