1. Главная
  2. Библиотека
  3. Программирование
  4. Преобразовать исходный массив c0, c1,…, c2n-1 так, чтоб...
Решение задачи на тему

Преобразовать исходный массив c0, c1,…, c2n-1 так, чтобы его элементы расположились в следующем порядке: c0, c2n-1, c1, c2n-2,…, cn-1, cn. Дополнительных массивов не использовать.

  • Программирование
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
Преобразовать исходный массив c0, c1,…, c2n-1 так, чтобы его элементы расположились в следующем порядке: c0, c2n-1, c1, c2n-2,…, cn-1, cn. Дополнительных массивов не использовать.

Условие:

Преобразовать исходный массив c0, c1,…, c2n-1 так, чтобы его элементы расположились в следующем порядке: c0, c2n-1, c1, c2n-2,…, cn-1, cn. Дополнительных массивов не использовать.

Решение:

Ниже приведён один из вариантов решения задачи «без использования дополнительных массивов»: мы будем действовать в два этапа.

Постановка задачи:
Имеется массив из 2n элементов:
  c₀, c₁, …, c₂ₙ₋₁
Нужно получить порядок элементов:
  c₀, c₂ₙ₋₁, c₁, c₂ₙ₋₂, …, cₙ₋₁, cₙ

Алгоритм решения, представленный ниже, позволяет выполнить перестановку «на месте» (in-place).

────────────────────────────── Этап 1. Разворот второй половины массива

Исходный массив имеет вид:
  [c₀, c₁, …, cₙ₋₁, cₙ, cₙ₊₁, …, c₂ₙ₋₁]

Нужно развернуть вторую половину, то есть элементы с индексами от n до 2n–1. Посл...

Выбери предмет