Амортизационный анализ: Групповой, Банковский и Метод потенциалов
Глубокое изучение амортизационного анализа. Разбор 3 методов: агрегированный анализ, бухгалтерский учет (учет кредитов) и метод потенциальной функции Φ. Анализ динамического массива (std::vector) и двоичного счетчика.
Исходная заготовка: полнота объяснения и примеров ожидает редакторской проверки.
В чем суть амортизационного анализа?
В некоторых структурах данных отдельная операция может стоить очень дорого (например, при расширении массива std::vector), но происходит это настолько редко, что среднее время на операцию в последовательности из операций составляет .
Амортизационный анализ гарантирует среднюю производительность каждой операции в худшем сценарии последовательности (в отличие от вероятностного анализа, здесь нет никаких случайных величин).
3 фундаментальных метода амортизационного анализа
1. Групповой метод (Aggregate Analysis)
Показываем, что суммарная стоимость последовательности из операций ограничена . Тогда амортизированная стоимость одной операции:Пример (Динамический массив): Копирование при переполнении происходит на шагах .
2. Банковский метод (Accounting / Credit Method)
Каждой операции назначается учетная стоимость .3. Метод потенциалов (Potential Method)
Определяется потенциальная функция , отображающая состояние структуры в действительное число (с условием ).Амортизированная стоимость -й операции определяется как:
Сумма амортизированных стоимостей:
Что дальше?
Вернитесь к обучению и выберите следующий материал.
Изучено — к обучению →Отметка сохранится в этом браузере. Её можно отменить или снять кнопкой «Изучено».