КАПУСТА: почитай,обсуди,отдохни!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » КАПУСТА: почитай,обсуди,отдохни! » Pascal » Сортировка массива по возрастанию.


Сортировка массива по возрастанию.

Сообщений 1 страница 2 из 2

1

В массив m1 записывается 100 чисел на промежутке -100 до 100, в массиве m2 эти числа расположены по возрастанию!

Код:
var 
   m1,m2: array[1..100]of integer; 
   i,k,n,min: integer; 
begin 
   min:=maxint; 
   for i:=1 to 100 do 
     m1[i]:=-100+random(201); 
       
   for i:=1 to 100 do 
   begin 
     for k:=1 to 100 do 
       if min>m1[k] then 
       begin 
         min:=m1[k]; n:=k; 
       end; 
     m1[n]:=maxint; 
     m2[i]:=min; 
     min:=maxint; 
     write(m2[i],' '); 
   end; 
end.

0

2

Есть способ лучше. Используется всего один массив.

Код:
var a:array[0..100] of integer; //массив с числами
i,j,t,n,max,nmax:integer;
begin
{забиваем массив случайными числами от -100 до 100}
randomize;
for i:=0 to 100 do begin
a[i]:=-100+random(201);
end;

n:=101; {кол-во чисел в массиве}

{цикл сортировки}
for i:=0 to n-1 do begin
max:=-100; {это число должно быть равно самому минимальному значению в массиве, в данном случае: -100}
nmax:=0;    {номер ячейки где будет максимальное число}
for j:=i to n-1 do
if max<a[j] then begin max:=a[j]; nmax:=j; end;
t:=a[i]; a[i]:=max; a[nmax]:=t; {принцип "молоко-вода", но можно использовать алгоритм, которому не требуется доп. переменная, в данном случае "t"}
end;
{цикл сортировки закончен}

for i:=0 to 100 do
write(a[i],' ');
end;

+1


Вы здесь » КАПУСТА: почитай,обсуди,отдохни! » Pascal » Сортировка массива по возрастанию.