首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问小弟我写的这个delphi直接插入法排序那里出错了

2012-03-23 
请教我写的这个delphi直接插入法排序那里出错了我是一名Delphi初学者,直接插入法排序总是有问题,麻烦大家

请教我写的这个delphi直接插入法排序那里出错了
我是一名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;

[解决办法]
var
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;

热点排行