Sort of array of string type

Posted in Algorithms

Use for sorting strings this algorithm: You should run along an array several times and compare each element of this array with next element and invert this strings if it necessary. For comparing strings use CompareStr function. This example shows sorting of names of months.

var
  mas: array[1..12] of string = (
    'January',
    'February',
    'March',
    'April',
    'May',
    'June',
    'July',
    'August',
    'September',
    'October',
    'November',
    'December');
...
procedure TForm1.Button2Click(Sender: TObject);
var
  Str: string;
  Num: Integer;
  Check: Boolean;
begin
  repeat
    Check:=False;
    Num:=1;
    repeat
      if CompareStr(mas[Num], mas[Num+1])>0 then
      begin
        Str:=mas[Num];
        mas[Num]:=mas[Num+1];
        mas[Num+1]:=Str;
        Check:=True;
      end;
      Inc(Num);
    until(Num>11);
  until(Check=False);
end;