Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Чет про программирование / программы / qsort
.pas const
n = 10;
var
a: array[1..n] of integer;
i: integer;
procedure swap(var a, b: integer);
var
t: Integer;
begin
t := a;
a := b;
b := t;
end;
procedure Sort(l, r: integer);
var
i, j, x: 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[i] > x do dec(j);
if i <= j then begin
swap(a[i], a[j]);
inc(i);
dec(j);
end;
if l < j then Sort(l, j);
if i < r then Sort(i, r);
end;
end;
Begin
randomize;
for i:=1 to n do begin
a[i] := random(100);
Write(a[i], ' ');
end;
writeln;
Sort(1, n);
for i:=1 to n do
Write(a[i], ' ');
readln;
end.
n = 10;
var
a: array[1..n] of integer;
i: integer;
procedure swap(var a, b: integer);
var
t: Integer;
begin
t := a;
a := b;
b := t;
end;
procedure Sort(l, r: integer);
var
i, j, x: 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[i] > x do dec(j);
if i <= j then begin
swap(a[i], a[j]);
inc(i);
dec(j);
end;
if l < j then Sort(l, j);
if i < r then Sort(i, r);
end;
end;
Begin
randomize;
for i:=1 to n do begin
a[i] := random(100);
Write(a[i], ' ');
end;
writeln;
Sort(1, n);
for i:=1 to n do
Write(a[i], ' ');
readln;
end.