关于摊销分析?

时间:2010-11-25 16:56:02

标签: c

我已经阅读过coreman中的摊销分析,但无法理解它究竟是什么。 我通过互联网但无法理解。请有人让我理解。谢谢

1 个答案:

答案 0 :(得分:3)

摊销分析背后的理念是基于经济学中的摊销理念:你现在花更多的钱,以便随着时间的推移省钱。例如:你花费额外的500美元用更现代,更省油的发动机购买汽车,随着时间的推移,你通过节省汽油来摊销这500美元。

摊销分析与大多数其他类型的不同之处在于,它会查看整个操作序列,而不是单个操作。

例如,最坏情况分析会考虑插入到动态数组中,并说“如果数组已满,则需要将整个数组复制到更大的数组中,因此插入到数组中的最坏情况步骤复杂度动态数组是Ο(n)“。

分摊最坏情况分析会说调整大小只是很少发生,它实际上会让你有可能在可预见的未来在Ο(1)进行插入。因此,虽然单个插入的最坏情况是Ο(n),但最糟糕的情况只会出现Ο(1)Ω(n)次操作,这意味着调整数组大小的成本将摊销数组的生命周期,因此插入动态数组的总体摊销最坏情况步骤复杂度为Ο(1)