Да, вроде, и ничего сложного.
Код:
uses Crt;
const n=10;
var a:array[1..n] of integer;
i,t,ti,k,m,p:integer;
begin
ClrScr;
Randomize;
for i:=1 to n do
begin
a[i]:=Random(99)+1;
Write(a[i]:4);
end; Writeln; Writeln;
m:=1; k:=n; p:=0;
repeat
Inc(p);
t:=0;
for i:=m to k do
if a[i]>t then
begin
t:=a[i]; ti:=i;
end;
if (p mod 2)<>0
then
begin
for i:=ti downto m+1 do
a[i]:=a[i-1];
a[m]:=t;
Inc(m);
end
else
begin
for i:=ti to k-1 do
a[i]:=a[i+1];
a[k]:=t;
Dec(k);
end;
until (m=k);
for i:=1 to n do
Write(a[i]:4);
Readkey;
end.