Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.24 KB | None | 0 0
  1. program ProjectShaker12;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. type
  9.    TIntArray = array of integer;
  10.  
  11. procedure ShakerSort(Arr: TIntArray; Start, m: integer);
  12. var
  13.    Left, Right, i: integer;
  14. begin
  15.    Left := Start;
  16.    Right := m;
  17.    while Left <= Right do
  18.    begin
  19.       for i := Right - 1 downto Left do
  20.          if (Arr[i - 1] > Arr[i]) then
  21.          begin
  22.             Arr[i] := Arr[i] xor Arr[i - 1];
  23.             Arr[i  - 1] := Arr[i] xor Arr[i - 1];
  24.             Arr[i] := Arr[i] xor Arr[i - 1];
  25.          end;
  26.       Left := Left + 1;
  27.       for i := Left to Right - 1 do
  28.          if Arr[i - 1] > Arr[i] then
  29.          begin
  30.             Arr[i] := Arr[i] xor Arr[i - 1];
  31.             Arr[i  - 1] := Arr[i] xor Arr[i - 1];
  32.             Arr[i] := Arr[i] xor Arr[i - 1];
  33.          end;
  34.       Right := Right - 1;
  35.    end;
  36.    for i := 0 to M - 1 do
  37.       write(' ', Arr[i]);
  38.    end;
  39.  
  40. procedure Main();
  41. var
  42.    n, k: integer;
  43.    A: TIntArray;
  44. begin
  45.    write('Enter the number of elements > ');
  46.    read(n);
  47.    SetLength(A, n);
  48.    for k := 0 to n - 1 do
  49.    begin
  50.       write(k + 1, ' element > ');
  51.       read(A[k]);
  52.    end;
  53.    write('Sorted array: ');
  54.    ShakerSort(A, 1, n);
  55.    readln;
  56. end;
  57.  
  58.  
  59. begin
  60.    Main();
  61.    readln;
  62. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement