Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ShakerSort;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- procedure Swap(var Arr: array of Integer; i : Integer);
- var
- buff: Integer;
- begin
- buff := Arr[i];
- Arr[i] := Arr[i - 1];
- Arr[i - 1] := buff;
- end;
- procedure Main;
- var
- i, markLeft, markRight: Integer;
- Arr: array of Integer;
- begin
- Readln(markRight);
- SetLength(Arr, markRight);
- markLeft := 1;
- Dec(markRight);
- for i := 0 to markRight do
- Read(Arr[i]);
- while markLeft <= markRight do
- begin
- for i := markRight downto markLeft do
- if Arr[i - 1] > Arr[i] then
- Swap(Arr, i);
- Inc(markLeft);
- for i := markLeft to markRight do
- if Arr[i - 1] > Arr[i] then
- Swap(Arr, i);
- Dec(markRight);
- end;
- for i := 0 to High(Arr) do
- Write(Arr[i], ' ');
- Readln;
- Readln;
- end;
- begin
- Main;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement