[Back to SORTING SWAG index] [Back to Main SWAG index] [Original]

    {
    It gets better and better.  The Procedure below is incredibly fast in the
    sorting of the Strings in the Arrays!  1.2 sec For 1485 Strings.
    }

    Procedure Sort(item : PFilearr; Last : Integer);
    Var
      i, j : Integer;
      span : Integer;
    begin
      item^[0] := newstr('                       ');
      span := Last shr 1;  {Span=Last/2}
      While span > 0 do
      begin
      For i := Span to Last - 1 do
      begin
        For j := (i - Span + 1) downto 1 do
        if item^[j]^ <= item^[j + Span]^ then
          j:=1   {to make it quit the j-loop}
        else
        begin {swap Array(j) With Array(j+Span)}
          item^[0] := item^[j];
          item^[j] := item^[j + Span];
          item^[j + Span] := item^[0];
        end;
      end;
      Span := Span shr 1; {Span=Span/2}
      end;
    end;

[Back to SORTING SWAG index] [Back to Main SWAG index] [Original]