在 O(n^2) 和 O(n^4) 之间交替的算法的分摊运行时间成本
Amortized Runtime Cost for an algorithm alternating between O(n^2) & O(n^4)
如果我实现的算法在当前时间步 O(n^4)
运行,然后在下一个时间步 O(n^2)
运行。
- 复杂度还是
max[O(n^4), O(n^2)]
吗?
- 有没有办法得到复杂度在
[2, 4)
范围内的多项式?即平均 O(n^2.83)
- 我如何计算从
t=0...inf
分摊的平均运行时间成本?只是 [O(n^2) + O(n^4)] / 2
吗?
O(n2) 在 O(n4[=24 上可以忽略不计=]) 因为当 n 无限增长时,第一个对第二个的商有零限制。
所以你的算法就是 O(n4)
阅读 Big 0 notation 上的维基页面和任何关于多项式极限的好教科书。
如果我实现的算法在当前时间步 O(n^4)
运行,然后在下一个时间步 O(n^2)
运行。
- 复杂度还是
max[O(n^4), O(n^2)]
吗? - 有没有办法得到复杂度在
[2, 4)
范围内的多项式?即平均O(n^2.83)
- 我如何计算从
t=0...inf
分摊的平均运行时间成本?只是[O(n^2) + O(n^4)] / 2
吗?
O(n2) 在 O(n4[=24 上可以忽略不计=]) 因为当 n 无限增长时,第一个对第二个的商有零限制。
所以你的算法就是 O(n4)
阅读 Big 0 notation 上的维基页面和任何关于多项式极限的好教科书。