广州广雅中学校服:用pascal语言实现希尔排序算法
来源:百度文库 编辑:神马品牌网 时间:2024/05/04 18:29:34
pascal语言现在很少用到,哪位能帮帮忙谢谢了!
procedure prshl(p,n)
begin
k:=n/2;
while(k>0) do begin
for j:=k to n-1 do begin
t:=p[j];i:=j-k;
while((i>=0) and (p[i]>t)) do begin
p[i+k]:=p[i];i:=i-k;
end;
p[i+k]:=t;
end;
k:=k/2;
end;
end;
大体上就是这样
{a是要排序的数组,长度为n,序号为1至n}
jump := n Div 2;
While jump > 0 Do Begin
f := True;
For i:=1 To n-jump Do
If a[i] > a[i+jump] {从小到大,从大到小就用"<"} Then Begin
temp := a[i];
a[i] := a[i+jump];
a[i+jump] := temp;
f := False;
End;
If f Then jump := jump Div 2;
End;
看《数据结构》