我正在学习算法分析。我了解算法 最坏情况下运行时间 的概念。
但是,算法在最坏情况下的运行时间的上限和下限是什么?
有什么可以其中一个示例 上限 用于运行算法的时间最坏的情况下是不同的距离 下限 为运行相同的算法的时间的最坏情况?
对于一个函数f(n),如果对于一个“常量n” ,g(n)则是一个 上限* (big O)。[克占优势F] G(N)的 下界 (大欧米茄)如果“足够大N”,对于恒定。[f主宰g]f(n)<=c*g(n)``c *f(n)>= c*g(n)``c
f(n)
g(n)
f(n)<=c*g(n)``c
f(n)>= c*g(n)``c
如果[具有不同c的]的g(n)上限和下限均是f(n),则说g(n)是f(n)的严格边界[Big theta]
将示例用作上限而不是严格的上限 :有时很难找到严格的上限,例如fibonacci递归算法。因此我们很容易找到O(2^ n)的容易上限。