【发布时间】:2011-06-18 17:55:01
【问题描述】:
作为一个简单的例子,在动态数组的具体实现中,每次数组填满时,我们将数组的大小加倍。 因此,可能需要重新分配数组,在最坏的情况下,插入可能需要 O(n)。 但是,一个序列的 n 次插入总是可以在 O(n) 时间内完成,因为其余的插入是在恒定时间内完成的,因此可以在 O(n) 时间内完成 n 次插入。 因此,每次操作的摊销时间为 O(n) / n = O(1)。 --来自维基
但在另一本书中:每次加倍都需要 O(n) 时间,但发生如此罕见,以至于其摊销时间仍为 O(1)。
希望有人能告诉我这种罕见的情况是否可以推断出 Wiki 的解释?谢谢
【问题讨论】:
-
“其他书”什么也没说,它是一种描述 wiki 所说内容的模糊和不精确的方式。这是你的作业,不是吗?自己进行分析并弄清楚;)
标签: algorithm amortized-analysis