Junior
57
questionbank

Какова алгорифмическая сложность добавления элементов в конец массива?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

O(1) амортизировано (amortized).

При добавлении элемента в конец массива, если есть свободное место, происходит простое присваивание, что занимает O(1).

Если массив заполнен, требуется перевыделение памяти и копирование всех существующих элементов в новое, большее хранилище. Эта операция занимает O(N), где N - количество элементов в массиве.

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

Пример на Swift:

swift