⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shell.pas

📁 Delphi Pascal 数据挖掘领域算法包 数值算法大全
💻 PAS
字号:
PROCEDURE shell(n: integer; VAR arr: glnarray);
(* Programs using routine SHELL must define the type
TYPE
   glnarray = ARRAY [1..np] OF real;
in the main routine, with np >= n.   *)
LABEL 3;
CONST
   aln2i=1.442695022;
   tiny=1.0e-5;
VAR
   nn,m,lognb2,l,k,j,i: integer;
   t: real;
BEGIN
   lognb2 := trunc(ln(n)*aln2i+tiny);
   m := n;
   FOR nn := 1 TO lognb2 DO BEGIN
      m := m DIV 2;
      k := n-m;
      FOR j := 1 TO k DO BEGIN
         i := j;
3:         l := i+m;
         IF (arr[l] < arr[i]) THEN BEGIN
            t := arr[i];
            arr[i] := arr[l];
            arr[l] := t;
            i := i-m;
            IF (i >= 1) THEN GOTO 3
         END
      END
   END
END;

⌨️ 快捷键说明

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