【delphi源码】梳式排序函数(基于冒泡排序)【delphi源码】梳式排序函数(基于冒泡排序)

习题答案
考试通关必备网站

【delphi源码】梳式排序函数(基于冒泡排序)

梳式排序函数(基于冒泡排序)
梳式排序的基本思想是利用合适增量把距离较远的元素移动到较近的位置
第一步:设置合适增量
第二步:以增量作为间隔分别取出元素进行冒泡排序
第三步:逐步缩小增量直至增量为1,执行一次基本的冒泡排序。
TargetArr为要排序取中位数的数组;
nmax为数组中的数值个数
function sort(var TargetArr:array of Double;nMax:Integer);
var
i,j,gap : Integer;
Done : Boolean;
begin
gap := nMax;
repeat
gap :=gap*10 div 13;// 逐步缩小增量gap :=Trunc(gap/1.3)
if gap<1 then
gap :=1
else
if (gap=9)or(gap=10) then
gap :=11;
//执行冒泡排序
for i:=0 to (nMax-gap) do
begin
j := i+gap;
if TargetArr[j] begin
Temp := TargetArr[j];
TargetArr[j] := TargetArr[i];
TargetArr[i] := Temp;
Done := False;
end;
end;
until Done and (gap=1)
end;
未经允许不得转载:亿券答案网 » 【delphi源码】梳式排序函数(基于冒泡排序)

我来解答

匿名发表
  • 验证码: