Сортировка Шейкером
Program ShakerSort;
Var A : array[1..1000] of integer;
N,i,j,p : integer;
Min, Max : integer;
Begin
randomize;
writeln('Razmer massiva');
readln(N);
for i:=1 to N do
A[i]:=random(50);
for i:=1 to n div 2 do begin
if A[i]>A[i+1] then begin
Min:=i+1;
Max:=i;
end else begin
Min:=i;
Max:=i+1;
end;
for j:=i+2 to n-i+1 do
if A[j]>A[Max] then Max:=j else if A[j] < A[min] then
Min:=j;
P:=A[i];
A[i]:=A[min];
A[min]:=P;
if max=i then max:=min;
P:=A[N-i+1];
A[N-i+1]:=A[max];
A[max]:=P;
end;
for i:=1 to N do
write(A[i],' ');
End.
Челночная сортировка
|