Вот лови, здесь 2 раза использован один и тот же алгоритм сортировки, помоему пузырьковая =)
Код
uses crt;
var mas:array[0..19] of integer;
i:byte; {счетчик}
t:boolean;{ключ}
temp:integer;
begin
clrscr;
randomize;
{Генерируем массив}
for i:=0 to 19 do mas[i]:=random(100)-50;
for i:=0 to 19 do write(mas[i],' ');
writeln;
{Сортируем по возрастанию ВСЕ элементы}
t:=false;
while (t=false) do
begin
t:=true;
for i:=0 to 18 do
if (mas[i+1]<mas[i]) then
begin
temp:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=temp;
t:=false;
end;
end;
for i:=0 to 19 do write(mas[i],' ');
writeln;
{Сортируем по убыванию ТОЛЬКО ОТРИЦАТЕЛЬНЫЕ элементы}
t:=false;
while (t=false) do
begin
t:=true;
for i:=0 to 18 do
begin
if (mas[i+1]>=0) then break;
if (mas[i+1]>mas[i]) then
begin
temp:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=temp;
t:=false;
end;
end;
end;
for i:=0 to 19 do write(mas[i],' ');
writeln;
readkey;
end.
Надеюсь поможет =) :p5: