Амортизированное время динамического массива

В качестве простого примера, в конкретной реализации динамического массива мы удваиваем размер массива каждый раз, когда он заполняется. Из-за этого может потребоваться перераспределение массива, а в худшем случае для вставки может потребоваться O (n). Однако последовательность из n вставок всегда может быть выполнена за время O (n), потому что остальные вставки выполняются за постоянное время, поэтому n вставок могут быть выполнены за время O (n). Амортизированное время на операцию, следовательно, O (n) / n = O (1). - из Wiki

Но в другой книге: каждое удвоение занимает O (n) времени, но случается так редко, что его амортизированное время по-прежнему равно O (1).

Надеюсь, кто-нибудь мне скажет, следует ли из этой редкой ситуации объяснение вики? Спасибо

6
задан skaffman 31 January 2011 в 17:29
поделиться