begin. whileL < R do begin. else begin
var
i, j: integer;
x, y: tItem;
begin
whileL < R do begin
i:=L; j:=R;
x:=a[(L + R) div2];
repeat
whilex.key > a[i].key doi:=i + 1;
whilea[j].key > x.key doj:=j - 1;
ifi <= j then begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
i:=i + 1; j:=j - 1;
end;
untili > j;
ifi – L < R - j then begin
Sort(L, j);
l:=i;
end
else begin
Sort(i, R);
R:=j;
end;
end;
end;
begin
Sort(1, n);
end;
|