...sort an Array with the Shell Sort Algorithm?
Author: Stormer
{
 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;
printed from
  www.swissdelphicenter.ch
  developers knowledge base