Опубликовано 26.01.2018 по предмету Информатика от Гость

Срочно. Напишите программу, которая заполняет массив случайными числами в диапазоне [a, b] и сортирует его “домиком” – до половины в порядке возрастания, затем – в порядке убывания. Количество элементов в массиве может быть любое! С объяснениями и откуда что взялось?

Ответ оставил Гость

// PascalABC.NET 3.3, сборка 1590 от 03.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var (a,b,n):=ReadInteger3(Интервал [a,b] и число элементов;);
  var M:=ArrRandom(n,a,b); M.Println; // заполнение и вывод массива
  var k:=n div 2; // середина массива
  M:=(M[:k].OrderBy(t->t)+M[k:].OrderByDescending(t->t)).ToArray;
  M.Println
end.

Примеры
Интервал [a,b] и число элементов; -50 50 19
-12 -45 5 28 -43 -45 21 4 -44 49 7 -30 1 24 -23 2 -17 -48 32
-45 -45 -44 -43 -12 4 5 21 28 49 32 24 7 2 1 -17 -23 -30 -48

Интервал [a,b] и число элементов; 0 1 30
0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы