Чет про программирование / практика / 8) Быстрая сортировка
.docxБыстрая сортировка
var
n, i: integer;
a: array of integer;
procedure swap(var i,j: integer);
var t: integer;
begin
t := i;
i := j;
j := t;
end;
procedure qsort(l, r: integer);
var
x: integer;
i, j: integer;
begin
x := a[(l + r) div 2];
i := l;
j := r;
while i < j do begin
while a[i] < x do inc(i);
while a[j] > x do dec(j);
if i <= j then begin
swap(a[i], a[j]);
inc(i);
dec(j);
end;
end;
if l < j then qsort(l, j);
if i < r then qsort(i, r);
end;
begin
randomize;
read(n);
setlength(a, n);
for i := 0 to n-1 do begin
read(a[i]);
end;
qsort(0, n-1);
for i := 0 to n-1 do
write(a[i], ' ');
writeln;
readln;
readln;
end.