クイックソート後の出力(pascal)
20個の整数データをクイックソートして出力せよ、という課題が出ました。クイックソートまでは出来た(コンパイルできたのでおそらく)のですが、その順に出力する方法がわかりません。どなたかお教えください。
program sort(input,output);
const n = 20;
type
index = 1..n;
var A : array[1..n] of integer;
i,x,a : integer;
p,j,k : index;
function PIVOT(i,j : index):integer;
var k:index;
begin
k:=i+1;
while (A[i]=A[k]) and (k<=j) do k:=k+1;
if k>j then PIVOT:=0
else if A[i]>=A[k] then PIVOT:=i
else PIVOT:=k
end;
procedure SWAP(var x,y:integer);
var
temp:integer;
begin
temp:=x; x:=y; y:=temp
end;
procedure PARTITION(i,j:index; a:integer; var k:index);
var l,r:index;
begin
l:=i; r:=j;
while A[l]<a do l:=l+1;
while A[r]>=a do r:=r-1;
while l<=r do
begin
SWAP(A[l],A[r]);
l:=l+1; r:=r-1;
while A[l]<a do l:=l+1;
while A[r]>=a do r:=r-1;
end;
k:=l
end;
procedure QUICKSORT(i,j:index);
var a:integer; p:index; k:index;
begin
p:=PIVOT(i,j);
if p<>0 then
begin
a:=A[p];
PARTITION(i,j,a,k);
QUICKSORT(i,k-1);
QUICKSORT(k,j)
end
end;
begin
i:=0;
i:=1+1;
for i:= 1 to n do
begin
A[i]:=0;
end;
i:=0;
i:=i+1;
for i:= 1 to n do
begin
readln(x);
A[i]:=x
end;
a:=PIVOT(p,j);
PARTITION(p,j,A[a],k);
QUICKSORT(p,j)
end.
QUICKSORT(p,j)とend. の間に出力方法を書き込みたいのです。
お礼
すいません、自分で解決しました。not (c in [~])にすればいいようです。 回答ありがとうございました。