46
Глава 3. Класс ArrayList
при каждом изменении его размера. Это ограничивает количе-
ство копирований каждого элемента. В противном случае —
если добавить фиксированное значение к длине массива, а не
умножить — анализ не будет работать.
Способ классификации алгоритма с помощью вычисления
среднего количества в серии вызовов называется амортизаци-
онным анализом. Узнать об этом больше можно по адресу http://
thinkdast.com/amort. Основная идея способа заключается в том,
что дополнительные затраты на копирование массива распре-
деляются («амортизируются») по серии вызовов.
Теперь, если add(E) — метод постоянного времени, то как на-
счет add(int, E)? После вызова add(E) он проходит через часть
массива и перемещает элементы. Этот цикл — линейный, за