Строго говоря, big-O не является достаточно точной мерой, чтобы можно было сказать, что алгоритм с O (n) быстрее, чем алгоритм с амортизированным O (n).Думаю об этом.Если вы снизите уровень достоверности в своем анализе сложности, постоянные коэффициенты могут значительно отличаться и сделать амортизированную версию более быстрой.
Кроме того, влияние амортизации обычно зависит от использования.Например, если вы используете хеш-таблицу, влияние амортизации будет в значительной степени зависеть от вашего отношения операций прибавления к добавлению.Поэтому, если вы добавите 1000 записей, а затем выполните миллиард просмотров, тот факт, что вам пришлось перефразировать пару раз, не имеет большого значения.Но если вы постоянно добавляете записи, стоимость перефразирования может возрасти.
Вот почему амортизация отличается от наихудшего случая.Big-O отражает наихудший случай, в то время как амортизация позволяет вам сказать, что «один на каждый x будет попадать, а x достаточно большой, чтобы это не имело значения».Кроме того, если вы рассматриваете примеры, такие как вставка в хеш-таблицу, x увеличивается в соответствии с некоторой константой.Таким образом, если у вас есть хеш-таблица, которая начинается со 100 сегментов и удваивается каждый раз, тогда эти повторы асимптотически будут становиться все дальше и дальше друг от друга.Кроме того, абсолютная сложность в наихудшем случае для алгоритма с амортизированной сложностью зависит от предыдущих вызовов, тогда как в показателях, подобных среднему, вызовы считаются независимыми.