微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

堆栈操作的摊销分析

如何解决堆栈操作的摊销分析

假设我们在最初为空的堆栈上执行一系列操作(即top、push和pop) 使堆栈大小不超过 k。每 k 次操作后,我们复制整个 堆栈用于备份目的。 如何用记账法证明每个栈操作都会有O(1)摊销 复杂度与堆栈是否被复制无关?

解决方法

您有 k 个简单的操作和一个最多需要 k 次的复制操作。

你们一起进行 p 基本运算,然后 p < k + k = 2*k

因此每个操作的摊销复杂度为 p/k <= 2*k/k = 2 = O(1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。