Задачи / Обработка массивов / Переворот (реверс) массива
Переворот (реверс) массива: блок-схема и алгоритм
Меняем местами первый и последний элементы, затем второй и предпоследний и так далее до середины. Дополнительный массив не нужен.
Алгоритм по шагам
- Ввести n и массив a.
- Для i от 1 до n div 2 поменять местами a[i] и a[n − i + 1].
- Вывести массив.
Пример работы
| Вход | a = [1, 2, 3, 4, 5] |
| Шаг 1 | i = 1: обмен a[1] и a[5] → [5, 2, 3, 4, 1] |
| Шаг 2 | i = 2: обмен a[2] и a[4] → [5, 4, 3, 2, 1] |
| Шаг 3 | n div 2 = 2 — цикл закончен, средний элемент на месте |
| Результат | 5 4 3 2 1 |
Решение на Python
n = int(input())
a = list(map(int, input().split()))
for i in range(n // 2):
a[i], a[n - 1 - i] = a[n - 1 - i], a[i]
print(*a)
Решение на Pascal
var a: array[1..100] of integer;
n, i, t: integer;
begin
readln(n);
for i := 1 to n do read(a[i]);
for i := 1 to n div 2 do
begin
t := a[i];
a[i] := a[n - i + 1];
a[n - i + 1] := t;
end;
for i := 1 to n do write(a[i], ' ');
end.
Код блок-схемы
Схема выше нарисована по этому псевдокоду. Скопируйте его в редактор блок-схем или нажмите «Открыть блок-схему в редакторе».
блок-схема: Переворот массива
начало
ввод n, массив a[1..n]
для i от 1 до n div 2
t = a[i]
a[i] = a[n − i + 1]
a[n − i + 1] = t
вывод массив a
конец
Сложность
O(n) — n/2 обменов, память O(1).
Частые ошибки
- Идти циклом до n, а не до n div 2: массив перевернётся дважды и вернётся в исходный вид.
- Обменивать без вспомогательной переменной t — одно из значений потеряется.
- Ошибиться в индексе пары: для нумерации с 1 это n − i + 1, с 0 — n − 1 − i.
Похожие задачи
- Сумма элементов массиваСумма считается накоплением: заводим переменную s = 0 и по очереди прибавляем к ней каждый элемент.
- Поиск максимального элемента массиваСчитаем максимумом первый элемент, а затем сравниваем с ним все остальные: если встретился элемент больше — он становится новым максимумом..
- Минимальный элемент массива и его номерУдобнее хранить не само значение минимума, а его номер k: значение всегда можно получить как a[k].
- Количество положительных элементов массиваПодсчёт по условию — это счётчик: k = 0, и при каждом подходящем элементе k увеличивается на единицу.
Обозначения фигур и синтаксис кода блок-схем — в справочнике: блок-схема по ГОСТ 19.701. Все задачи.