Sobes.tech
Назад к вопросам
Junior — Middle
73

Какой уровень временной сложности у операции добавления элемента в конец массива с помощью слайса?

Ответ от нейросети

sobes.tech AI

В Go операция добавления элемента в конец слайса (append) имеет амортизированную временную сложность O(1).

Объяснение:

  • Если у слайса достаточно выделённой ёмкости (capacity), то добавление элемента происходит просто путём записи в следующий свободный индекс — это операция за константное время.

  • Если ёмкости недостаточно, происходит выделение нового массива большего размера, копирование старых элементов и добавление нового — эта операция занимает O(n), где n — текущий размер слайса.

Однако, поскольку такие перераспределения происходят не при каждом добавлении, а лишь периодически, средняя (амортизированная) сложность добавления остаётся O(1).