Janilabo

Janilabo | TSAInsertionSort() [Simba]

May 21st, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.93 KB | None | 0 0
  1. procedure TSAInsertionSort(var TSA: TStringArray; order: (so_LowToHigh, so_HighToLow));
  2. var
  3.   a, b, h: Integer;
  4.   tmp: string;
  5. begin
  6.   h := High(TSA);
  7.   if (h > 0) then
  8.   case order of
  9.     so_LowToHigh:
  10.     for a := 1 to h do
  11.       for b := a downto 1 do
  12.       begin
  13.         if not (TSA[b] < TSA[(b - 1)]) then
  14.           Break;
  15.         tmp := TSA[(b - 1)];
  16.         TSA[(b - 1)] := TSA[b];
  17.         TSA[b] := tmp;
  18.       end;
  19.     so_HighToLow:
  20.     for a := 1 to h do
  21.       for b := a downto 1 do
  22.       begin
  23.         if not (TSA[b] > TSA[(b - 1)]) then
  24.           Break;
  25.         tmp := TSA[(b - 1)];
  26.         TSA[(b - 1)] := TSA[b];
  27.         TSA[b] := tmp;
  28.       end;
  29.   end;
  30. end;
  31.  
  32. var
  33.   TSA: TStringArray;
  34.  
  35. begin
  36.   TSA := ['Apple', 'Orange', 'Lemon', 'Banana', 'Pear'];
  37.   TSAInsertionSort(TSA, so_HighToLow); // Reversed.
  38.   WriteLn(ToStr(TSA));
  39.   TSAInsertionSort(TSA, so_LowToHigh); // Default.
  40.   WriteLn(ToStr(TSA));
  41. end.
Advertisement
Add Comment
Please, Sign In to add comment