Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2017, 17:32   #1
Romeshek
Пользователь
 
Регистрация: 29.09.2017
Сообщений: 33
По умолчанию Сортировка

Задание: Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по возрастанию сумм цифр соответствующих элементов методом естественного слияния.

Это сортировка прямым слиянием:

Код:
type mas=array of integer;
var a:mas;
    n:integer;
function Sum(n:integer):integer;
begin
Sum:=n div 10+n mod 10;
end;

procedure Sliv(var a:mas;p,q:integer);
var r,i,j : integer;
    b:mas;
begin
SetLength(b,n);
r:=(p+q) div 2;
i:=p;
j:=r+1;
for var k:=p to q do
if (i<=r) and ((j>q) or (Sum(a[i])<Sum(a[j])))then 
  begin
   b[k]:=a[i];
   i:=i+1;
  end
 else
  begin
   b[k]:=a[j];
   j:=j+1;
  end;
for var k:=p to q do
a[k]:=b[k];
end;

procedure Sort(var a:mas;p,q: integer); 
begin
if p<q then 
 begin
  Sort(a,p,(p+q) div 2);
  Sort(a,(p+q) div 2 + 1,q);
  Sliv(a,p,q);
 end;
end;
begin
randomize;
write('n=');
readln(n);
SetLength(a,n);
writeln('Исходный массив');
for var i:=0 to n-1 do
 begin
  a[i]:=10+random(90);
  write(a[i]:3);
 end;
writeln; 
Sort(a,0,n-1);
writeln('Массив по возрастанию сумм цифр');
for var i:=0 to n-1 do
write(a[i]:3);
end.
Как данную сортировку переделать в сортировку естественным слиянием?
Сколько не искал на просторах интернета, ничего толкового найти не смог.
Romeshek вне форума Ответить с цитированием
Старый 20.10.2017, 20:14   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сколько не искал на просторах интернета, ничего толкового найти не смог.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32