К списку вопросов
Основы программированияmiddle

Что такое амортизированная сложность?

#амортизация#динамический массив#сложность

Короткий ответ

Амортизированная сложность оценивает стоимость серии операций в расчете на одну операцию. Отдельный вызов при этом может быть дорогим.

Разбор

Учебный динамический массив обычно быстро добавляет элемент в конец, но иногда расширяется и копирует все данные. При удвоении емкости n добавлений суммарно требуют O(n), то есть O(1) на добавление амортизированно.

Это свойство конкретной реализации, а не гарантия времени каждого push в JavaScript. Амортизированная оценка также отличается от среднего времени по случайным входам.

Источники

Pat Morin, Open Data Structures: Амортизированный анализ ArrayStack