Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 0.92 KB | None | 0 0
  1. program ShakerSort;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. procedure Swap(var Arr: array of Integer; i : Integer);
  9. var
  10.     buff: Integer;
  11. begin
  12.     buff := Arr[i];
  13.     Arr[i] := Arr[i - 1];
  14.     Arr[i - 1] := buff;
  15. end;
  16.  
  17. procedure Main;
  18. var
  19.     i, markLeft, markRight: Integer;
  20.     Arr: array of Integer;
  21. begin
  22.     Readln(markRight);
  23.     SetLength(Arr, markRight);
  24.     markLeft := 1;
  25.     Dec(markRight);
  26.     for i := 0 to markRight do
  27.         Read(Arr[i]);
  28.     while markLeft <= markRight do
  29.     begin
  30.         for i := markRight downto markLeft do
  31.             if Arr[i - 1] > Arr[i] then
  32.                 Swap(Arr, i);
  33.         Inc(markLeft);
  34.         for i := markLeft to markRight do
  35.             if Arr[i - 1] > Arr[i] then
  36.                 Swap(Arr, i);
  37.         Dec(markRight);
  38.     end;
  39.     for i := 0 to High(Arr) do
  40.         Write(Arr[i], ' ');
  41.     Readln;
  42.     Readln;
  43. end;
  44.  
  45. begin
  46.     Main;
  47. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement