Дан массив целых чисел. Отсортировать по возрастанию только элементы массива, стоящие в...

0 голосов
137 просмотров

Дан массив целых чисел. Отсортировать по возрастанию только элементы массива, стоящие в ячейках с нечётными номерами. Паскаль​


Информатика (794 баллов) | 137 просмотров
Дан 1 ответ
0 голосов

// PascalABC.Net

// Первая программа, если необходимо выбрать нечетные элементы и их отсортировать.

begin

   var a := ArrRandom(10);

   writeln('Исходный массив: ');

   a.PrintLn(', ');

   writeln('Отсортированный массив нечетных элементов: ');

   a.Where(e -> e mod 2 <> 0).OrderBy(e -> e).Print(', ');

end.

// Вторая программа, если необходимо в исходном массиве отсортировать нечетные значения

begin

   var a := ArrRandom(10);

   writeln('Исходный массив: ');

   a.PrintLn(', ');

   writeln('Отсортированный массив нечетных элементов: ');

   var odd := a.Select((e, i) -> (i, e)).Where(e -> e[1] mod 2 <> 0).OrderBy(e -> e[1]);

   var sortedOdd := odd.Zip(odd.Select(e -> e[0]).OrderBy(e -> e), (f, s) -> (s, f[1]));

   foreach var e in sortedOdd do

       a[e[0]] := e[1];

   a.PrintLn(', ');

end.

(4.3k баллов)
0

Какое-то очень знакомое решение...

0

Но неверное по-моему. С другой стороны, вопрос сформулирован плохо. Непонятно, что с остальными элементами делать. Если отбросить, решение првильное. Если оставить на местах (обычно в таких задачах так и поступают), решение неверное...

0

хмм, я даже и не вчитывался

0

ну тут задача не сложная

0

сейчас выполню

0

выглядит, кончено, костыляво

0

У меня было другое решение, с меньшим числом прогонов по массивам, но внешне тоже не шибко просто выглядит: https://znanija.com/task/35232324

0

хмм, я опять неправильно понял задание. Я сделал сортировку нечетных элементов, а не элементов под нечетными индексами

0

поэтому у меня так много "прогонов по массивам"