繁体   English   中英

以下函数的渐近时间复杂度是多少?

[英]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)= ng(n)= nh(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM