Операции над одномерным массивом

Наглядно: как вставка и удаление элемента сдвигают остальные ячейки, как работает разворот массива и поиск.

Одномерные массивы Сдвиг элементов Динамический массив

Текущий массив

n = 0

Операции

Размер
0
Сумма
0
Минимум
—
Максимум
—

Ключевой код: вставка и удаление

Вставка в позицию k (сдвиг вправо)
// Сдвигаем все элементы, начиная с k, на одну позицию вправо
for (i = n; i > k; i--)
    a[i] = a[i-1];

a[k] = value;
n++;
Удаление элемента с индексом k (сдвиг влево)
for (i = k; i < n - 1; i++)
    a[i] = a[i+1];

n--;   // логически уменьшаем размер; память, выделенная под массив, остаётся
Важно при удалении нескольких элементов. После удаления следующий элемент сдвигается на место удалённого, и индекс i увеличивать не нужно. Иначе можно пропустить элемент. См. задачу «удалить все положительные элементы».

Задание

  1. Соберите массив из 5 элементов, удалите второй по счёту. Сколько присваиваний произошло?
  2. Вставьте элемент в середину массива. Сколько элементов сдвинулось?
  3. Реализуйте операцию «удалить все чётные элементы» в коде и сравните с визуализацией.
  4. Модифицируйте операцию «развернуть» так, чтобы она не использовала дополнительный массив.