| 
   
    | ...sort an Array with the Shell Sort Algorithm? |   
    | Autor: 
      Stormer |  | [ Print tip 
] |  |  |  
 
 
{The following procedure sorts an Array with the
 fast Shell-Sort algorithm.
 Invented by Donald Shell in 1959,
 the shell sort is the most efficient of the O(n2)
 class of sorting algorithms
 }
 
 {
 Die folgende Prozedur Sortiert ein Array mit
 dem schnellem Shell-Sort Algorithmus.
 }
 
 Procedure Sort_Shell(var a: array of Word);
 var
 bis, i, j, k: LongInt;
 h: Word;
 begin
 bis := High(a);
 k := bis shr 1;// div 2
 while k > 0 do
 begin
 for i := 0 to bis - k do
 begin
 j := i;
 while (j >= 0) and (a[j] > a[j + k]) do
 begin
 h := a[j];
 a[j] := a[j + k];
 a[j + k] := h;
 if j > k then
 Dec(j, k)
 else
 j := 0;
 end; // {end while]
 end; // { end for}
 k := k shr 1; // div 2
 end;  // {end while}
 
 end;
 
 
   |