![](/img/trans.png)
[英]Best and Worst case time complexity and represent it in asymptotic notation for the following function
[英]What will be the asymptotic time complexity of the following function?
我遇到了函数渐近复杂性的问题:
3个功能的复杂度如下:
f(n) = O(n)
g(n) =大欧米茄(n)
h(n) = Theta(n)
那么结果函数[f(n).g(n)] + h(n)的渐近复杂度是多少
我可以通过基本的命中和试验来弄清楚答案是Big-Omega(n)。 例如,如果我说f(n)= n和g(n)= n且h(n)= n 。 因此我们可以说f(n)是O(n),而g(n)是Big-Omega(n),而h(n)是Theta(n) 。 现在f(n).g(n)是n 2 ,这将是Big-Omega(n),而不是O(n) 。 现在将其添加到h(n)是n 2 + n 。 这也是Big-Omega(n),但不是Theta(n) 。
但我无法为此找到合适的逻辑或数学证明。 有人可以帮我这个忙吗?
这是一个合理的解释尝试:
f(n) = O(n)
表示f
的运行时间最多为线性(可能是恒定时间)。 h(n) = Theta(n)
表示h
的运行时间是线性的。 g(n) = Big-Omega(n)
意味着g
的运行时间至少是线性的(可能是多项式,指数式……我们不知道)。 现在让我们分析最佳情况: f(n)
是恒定时间, g(n)
是线性, h(n)
是线性。 关于函数f(n)*g(n)+h(n)
怎么说? 它也是线性的。
对于最坏的情况我们能说些什么? 没什么 ,因为我们不知道g(n)
在最坏情况下的行为。
因此,我们可以得出结论: f(n)*g(n)+h(n) = Big-Omega(n)
因为在最佳情况下此函数是线性的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.