var
a:array[0..9] of integer
=(4,3,5,1,10,2,6,9,7,8);
procedure Print(_a:array of integer);
var i:integer;
begin
for i:=0 to 9 do
begin
write(_a[i]:5);
end;
writeln;
end;
procedure QuickSort(low,high:integer);
var x,i,j,temp:integer;
begin
x:=a[(low+high)div 2];
i:=low;
j:=high;
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
writeln(i:3,j:3,x:3);
if i<=j then
begin
temp:=a[i];
a[i]:=a[j];
a[j]:=temp;
inc(i);
dec(j);
end;
until i>j;
writeln(low:3,high:3);
Print(a);
if i<high then QuickSort(i,high);
if low<j then QuickSort(low,j);
end;
begin
QuickSort(0,9);
Print(a);
readln;
end.
全国青少年信息学奥林匹克竞赛培训---快速排序
最新推荐文章于 2023-01-17 17:38:04 发布