Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ProjectShaker12;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- type
- TIntArray = array of integer;
- procedure ShakerSort(Arr: TIntArray; Start, m: integer);
- var
- Left, Right, i: integer;
- begin
- Left := Start;
- Right := m;
- while Left <= Right do
- begin
- for i := Right - 1 downto Left do
- if (Arr[i - 1] > Arr[i]) then
- begin
- Arr[i] := Arr[i] xor Arr[i - 1];
- Arr[i - 1] := Arr[i] xor Arr[i - 1];
- Arr[i] := Arr[i] xor Arr[i - 1];
- end;
- Left := Left + 1;
- for i := Left to Right - 1 do
- if Arr[i - 1] > Arr[i] then
- begin
- Arr[i] := Arr[i] xor Arr[i - 1];
- Arr[i - 1] := Arr[i] xor Arr[i - 1];
- Arr[i] := Arr[i] xor Arr[i - 1];
- end;
- Right := Right - 1;
- end;
- for i := 0 to M - 1 do
- write(' ', Arr[i]);
- end;
- procedure Main();
- var
- n, k: integer;
- A: TIntArray;
- begin
- write('Enter the number of elements > ');
- read(n);
- SetLength(A, n);
- for k := 0 to n - 1 do
- begin
- write(k + 1, ' element > ');
- read(A[k]);
- end;
- write('Sorted array: ');
- ShakerSort(A, 1, n);
- readln;
- end;
- begin
- Main();
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement