【delphi源码】摇动排序(基于冒泡排序)【delphi源码】摇动排序(基于冒泡排序)

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

【delphi源码】摇动排序(基于冒泡排序)

摇动排序(基于冒泡排序)
交替从左右开始扫描
第一遍:从右到左扫描排序把最小元素方第一位
第二遍:从左到右扫描排序把最大元素方最后位
第三遍:从右到左扫描排序把第二小元素方第二位
第四遍:从左到右扫描排序把第二大元素方倒数第二位
TargetArr为要排序取中位数的数组;
nmax为数组中的数值个数
function sort(var TargetArr:array of Double;nMax:Integer);
var
R,L,i : Integer;
Temp : Integer;
begin
R:=0;
L:=nMax-1;
while R begin
//从右到左扫描
for i :=L downto R+1 do
begin
if TargetArr[i] begin
Temp := TargetArr[i];
TargetArr[i] := TargetArr[i-1];
TargetArr[i-1] := Temp;
end;
end;
Inc(R);//缩小下次扫描范围
//从左到右扫描
for i:=R+1 to L do
begin
if TargetArr[i] begin
Temp := TargetArr[i];
TargetArr[i] := TargetArr[i-1];
TargetArr[i-1] := Temp;
end;
end;
Dec(L);//缩小下次扫描范围
end;
end;
未经允许不得转载:亿券答案网 » 【delphi源码】摇动排序(基于冒泡排序)

我来解答

匿名发表
  • 验证码: