标签: algorithm stack time-complexity amortized-analysis
假设我们在最初为空的堆栈上执行一系列操作(即top、push和pop) 使堆栈大小不超过 k。每 k 次操作后,我们复制整个 堆栈用于备份目的。 如何用记账法证明每个栈操作都会有O(1)摊销 复杂度与堆栈是否被复制无关?
答案 0 :(得分:1)
您有 k 个简单的操作和一个最多需要 k 次的复制操作。
k
你们一起进行 p 基本运算,然后 p < k + k = 2*k
p
p < k + k = 2*k
因此每个操作的摊销复杂度为 p/k <= 2*k/k = 2 = O(1)
p/k <= 2*k/k = 2 = O(1)