我是一名Delphi初学者,直接插入法排序总是有问题,麻烦大家帮忙看一下是那里出错了,谢谢。
procedure insertsort(var queue1:queue;n:integer); //直接插入法排序
var
k,j,change:integer;
begin
for k:=2 to n do
begin
if (queue1[k]<queue1[k-1]) then
change:=queue1[k];
queue1[k]:=queue1[k-1];
for j:=k-2 downto 1 do
if (change<queue1[j]) then
queue1[j+1]:=queue1[j];
queue1[j+1]:=change;
end;
end;
procedure insertsort(var queue1:queue;n:integer); //直接插入法排序
var
k,j,change:integer;
begin
for k:=2 to n do
begin
if (queue1[k]<queue1[k-1]) then
change:=queue1[k];
queue1[k]:=queue1[k-1];
for j:=k-2 downto 1 do
if (change<queue1[j]) then
queue1[j+1]:=queue1[j];
queue1[j+1]:=change;
end;
end;
k, j, p,change: integer;
begin
for k := 2 to n do
begin
if (queue1[k] < queue1[k - 1]) then
begin
change := queue1[k];
queue1[k] := queue1[k - 1];
p:=k-2;
for j := k - 2 downto 1 do
if (change < queue1[j]) then
begin
p:=j-1;
queue1[j + 1] := queue1[j];
end;
queue1[p + 1] := change;
end;
end;
end;