Метод сортировки фон Неймана. Упорядочить массив а1, а2, ..., ат по
Метод сортировки фон Неймана. Упорядочить массив а1, а2, ..., ат по неубыванию с помощью метода сортировки слияниями:
1) любая пара примыкающих частей соединяется в одну группу из двух частей (последняя группа может состоять из 1-го элемента);
2) любая пара соседних двухэлементных групп соединяется в одну четырехэлементную группу и т. д.
При каждом слиянии новенькая укрупненная группа упорядочивается.
1 ответ
Иван Агузумцян
uses crt;
type mas=array[0..100] of integer;
procedure MergeSort(var m:mas;n:integer);
var
c:boolean;
i,i1,i2,n1,n2,j,k,tmp,len:integer;
b:mas;
begin
len:=1;
c:=true;
while lenlt;n do
nbsp;begin
nbsp;nbsp;if c then
nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;i:=0;
nbsp;nbsp;nbsp;nbsp;while i+lenlt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i+len+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n1:=i+len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=i+2*len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if n2gt;n then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=n;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while(i1lt;=n1)or(i2lt;=n2)do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i1gt;n1 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i2lt;=n2 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i2gt;n2 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i1lt;=n1 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if m[i1-1]gt;m[i2-1] then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;while ilt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;end
nbsp;nbsp;else
nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;i:=0;
nbsp;nbsp;nbsp;nbsp;while i+lenlt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i+len+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n1:=i+len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=i+2*len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if n2gt;n then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=n;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while (i1lt;=n1)or(i2lt;=n2)do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i1gt;n1 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i2lt;=n2 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i2gt;n2 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i1lt;=n1 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if b[i1-1]gt;b[i2-1] then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;while ilt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;len:=2*len;
nbsp;nbsp;nbsp;c:= not c;
nbsp;nbsp;end;
nbsp;if not c then
nbsp;nbsp;begin
nbsp;nbsp;nbsp;i:=1;
nbsp;nbsp;nbsp;repeat
nbsp;nbsp;nbsp;m[i-1]:=b[i-1];
nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;until not(ilt;=n);
nbsp;nbsp;end;
end;
var a:mas;
nbsp;nbsp;nbsp;nbsp;n,i:integer;
begin
clrscr;
randomize;
write(n=);readln(n);
writeln(Начальный массив:);
for i:=0 to n-1 do
nbsp;begin
nbsp;nbsp;a[i]:=random(20);
nbsp;nbsp;write(a[i], );
nbsp;end;
writeln;
MergeSort(a,n);
writeln(Сортировка:);
for i:=0 to n-1 do
write(a[i], );
readln
end.
type mas=array[0..100] of integer;
procedure MergeSort(var m:mas;n:integer);
var
c:boolean;
i,i1,i2,n1,n2,j,k,tmp,len:integer;
b:mas;
begin
len:=1;
c:=true;
while lenlt;n do
nbsp;begin
nbsp;nbsp;if c then
nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;i:=0;
nbsp;nbsp;nbsp;nbsp;while i+lenlt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i+len+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n1:=i+len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=i+2*len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if n2gt;n then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=n;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while(i1lt;=n1)or(i2lt;=n2)do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i1gt;n1 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i2lt;=n2 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i2gt;n2 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i1lt;=n1 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if m[i1-1]gt;m[i2-1] then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;while ilt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;b[i-1]:=m[i-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;end
nbsp;nbsp;else
nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;i:=0;
nbsp;nbsp;nbsp;nbsp;while i+lenlt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i+len+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n1:=i+len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=i+2*len;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if n2gt;n then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;n2:=n;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while (i1lt;=n1)or(i2lt;=n2)do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i1gt;n1 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i2lt;=n2 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if i2gt;n2 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while i1lt;=n1 do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if b[i1-1]gt;b[i2-1] then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i2-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i2:=i2+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i1-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i1:=i1+1;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;while ilt;=n do
nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;m[i-1]:=b[i-1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;len:=2*len;
nbsp;nbsp;nbsp;c:= not c;
nbsp;nbsp;end;
nbsp;if not c then
nbsp;nbsp;begin
nbsp;nbsp;nbsp;i:=1;
nbsp;nbsp;nbsp;repeat
nbsp;nbsp;nbsp;m[i-1]:=b[i-1];
nbsp;nbsp;nbsp;i:=i+1;
nbsp;nbsp;nbsp;until not(ilt;=n);
nbsp;nbsp;end;
end;
var a:mas;
nbsp;nbsp;nbsp;nbsp;n,i:integer;
begin
clrscr;
randomize;
write(n=);readln(n);
writeln(Начальный массив:);
for i:=0 to n-1 do
nbsp;begin
nbsp;nbsp;a[i]:=random(20);
nbsp;nbsp;write(a[i], );
nbsp;end;
writeln;
MergeSort(a,n);
writeln(Сортировка:);
for i:=0 to n-1 do
write(a[i], );
readln
end.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
задание экономиоти
Рассмотри ситуацию: человек живёт на Крайнем Се-вере. С помощью каких
Экономика.
Человек живет на Крайнем Севере. С помощью каких благ удовлетворяются потребности
Экономика.
там лежат три яйца.у дома рос клен.Это гнездо сойки.на клёне гнездо
Русский язык.
Тыныштық күйіндегі карусель 35 с-та 3,0 рад/с бұрыштық жылдамдықпен үдей қозғалады.
Разные вопросы.
Сочинение на тему "Русский язык не сможет умереть!"
Математика.
Приветствую!
Меня зовут Станислав, я представляю компанию under.site.
Хотел бы предложить интересное решение
Разные вопросы.
Масса трёх одинаковых пакетов чая 180г чему равна масса
Математика.
Газообразный аммиак объёмом 2.24 л (н.у.) был полностью поглощён 14.68 мл
Химия.
Упражнение 2 Выпишите глаголы и вставьте пропущенные буквы
Русский язык.
Радиус окружности, описанной около равностороннего треугольника, равен 6. Найдите сторону треугольника
Геометрия.
Облако тегов