sort.pas

来自「Delphi Pascal 数据挖掘领域算法包 数值算法大全」· PAS 代码 · 共 41 行

PAS
41
字号
PROCEDURE sort(n: integer; VAR ra: glsarray);
(* Program using routine SORT must define the type
TYPE
   glsarray = ARRAY [1..np] OF real;
in the main routine, with np >= n.   *)
LABEL 99;
VAR
   l,j,ir,i: integer;
   rra: real;
BEGIN
   l := (n DIV 2)+1;
   ir := n;
   WHILE true DO BEGIN
      IF (l > 1) THEN BEGIN
         l := l-1;
         rra := ra[l]
      END ELSE BEGIN
         rra := ra[ir];
         ra[ir] := ra[1];
         ir := ir-1;
         IF (ir = 1) THEN BEGIN
            ra[1] := rra;
            GOTO 99
         END
      END;
      i := l;
      j := l+l;
      WHILE (j <= ir) DO BEGIN
         IF (j < ir) THEN
            IF (ra[j] < ra[j+1]) THEN j := j+1;
         IF (rra < ra[j]) THEN BEGIN
            ra[i] := ra[j];
            i := j;
            j := j+j
         END ELSE
            j := ir+1
      END;
      ra[i] := rra
   END;
99:   END;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?