【delphi源码】取中位数的函数【delphi源码】取中位数的函数

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

【delphi源码】取中位数的函数

首先选择排序然后取数组的中位数。
TargetArr为要排序取中位数的数组;
nmax为数组中的数值个数
function sort(var TargetArr:array of Double;nMax:Integer):real;
var
// TargetArr : array[0..nMax-1]of Integer;//nMax个元素
Temp : Double;
i,j,Dest,n2 : Integer;
begin
//排序
for i:=0 to nMax-1 do
begin
Dest :=i;
for j:= i+1 to nMax-1 do
begin
if TargetArr[j] Dest :=j;
end;
if Dest<>i then//如果本次扫描第一位不是最小的就和最小的(Dest位)的元素互换
begin
Temp := TargetArr[i];
TargetArr[i] := TargetArr[Dest];
TargetArr[Dest] := Temp;
end;
end;
//取中位数
N2:=nmax div 2;
If 2 * N2 = nmax Then
sort:=0.5 * (TargetArr[N2-1]+TargetArr[N2])
Else
sort:=TargetArr[N2];
end;
未经允许不得转载:亿券答案网 » 【delphi源码】取中位数的函数

我来解答

匿名发表
  • 验证码: