
20.12.2010, 17:59
|
Прохожий
|
|
Регистрация: 06.06.2010
Сообщения: 15
Репутация: 12
|
|
Код:
const Sz=10;
type IArr=array [1..Sz] of integer;
var A: IArr;
procedure swap(var a,b: integer);
var v: integer;
begin
v:=a;
a:=b;
b:=v
end;
procedure QuickSort(var A: IArr; n: integer);
procedure sort(l,r: integer);
var
i,j: integer;
w,x: integer;
begin
i:=l; j:=r;
x:=A[(l+r) div 2];
repeat
while A[i]<x do Inc(i); // ищем первый элемент >= x
while A[j]>x do Dec(j); // ищем последний элемент <= x
if i<=j then
begin
swap(A[i],A[j]);
Inc(i);
Dec(j);
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r)
end;
begin
sort(1,n)
end;
begin
//Чтение массива
quicksort(a,sz);
//вывод массива
end;
|