问题描述
到目前为止,在学习算法时,我已经假定渐近边界与控制结构中的模式直接相关。 因此,如果我们有n ^ 2的时间复杂度,我想这会自动意味着我必须使用嵌套循环。但是我看到这并不总是正确的(对于其他时间复杂度,不只是二次的)。 如何处理时间复杂度与控制结构之间的这种关系?
谢谢
解决方法
Rice's theorem是对分析运行时间做出一般性陈述的重要障碍。
在实践中,有很多技术可以应用。许多算法都具有易于分析的嵌套循环结构。当这些循环之一的边界取决于数据时,您可能需要进行摊销分析。分而治之的算法通常可以通过Master Theorem或Akra–Bazzi进行分析。
但是,在某些情况下,运行时间分析可能非常微妙。以联合查找为例:获取逆阿克曼运行时间界限需要证明。然后对于像Collatz猜想这样的事情,我们甚至不知道如何获得有限的边界。