Algorithm 渐近式表示法

Algorithm 渐近式表示法,algorithm,complexity-theory,Algorithm,Complexity Theory,根据我的研究:我被要求确定一个函数相对于另一个函数的复杂性。i、 e.给定f(n)和g(n),确定O(f(n()。在这种情况下,我用O()、θ和ω表示法替换值,比较两者并得出复杂性 但是,在解决复发问题的替代方法中,每个标准文档都有以下行: •[假设T(1)=Θ(1)。] •猜测O(n3)。(证明O和Ω 单独使用。) •假设T(k)≤ k

根据我的研究:我被要求确定一个函数相对于另一个函数的复杂性。i、 e.给定
f(n)
g(n)
,确定
O(f(n()
。在这种情况下,我用
O()、θ和ω表示法替换值,比较两者并得出复杂性

但是,在解决复发问题的
替代方法中
,每个标准文档都有以下行:

•[假设T(1)=Θ(1)。]

•<代码>猜测O(n3)。(证明O和Ω 单独使用。)

假设T(k)≤ k

•<代码>证明T(n)≤ cn3由诱导产生。

我怎么才能找到O和OΩ 当没有其他信息(除了f(n))时?我可能是错的(我,肯定是错的),欢迎提供有关上述信息

上面的一些假设与这个问题有关:
T(n)=4T(n/2)+n

,而步骤的基本轮廓是针对所有这些问题的。

通过主定理可以解决特定的递归,但您可以从替换方法中获得一些反馈。让我们试试您对
cn^3
的初步猜测

T(n)  = 4T(n/2) + n
     <= 4c(n/2)^3 + n
      = cn^3/2 + n
所以
T
O(n^3)
。这个推导中有趣的部分是我们用一个立方项来消除一个线性项。像这样的过度使用通常是我们可以猜得更低的迹象。让我们试试
cn

T(n)  = 4T(n/2) + n
     <= 4cn/2 + n
      = 2cn + n
T(n)  = 4T(n/2) + n
     <= 4(c(n/2)^2 - n/2) + n
      = cn^2 - 2n + n
      = cn^2 - n
起初,这看起来也是一个失败。不过,与我们对
n
的猜测不同的是,这个缺陷几乎是界本身的o。我们可以通过考虑
cn^2-h(n)
形式的界来关闭它,其中
h
o(n^2)
。为什么要减法?如果我们使用
h
作为候选边界,我们会出现赤字;通过减去
h
,我们会出现盈余。
h
的常见选择是低阶多项式或
logn
。让我们试试
cn^2-n

T(n)  = 4T(n/2) + n
     <= 4(c(n/2)^2 - n/2) + n
      = cn^2 - 2n + n
      = cn^2 - n
它比
cn^2-2n

“给定f(n)和g(n),确定f(n)”
-可能是打字错误(因为,如果你已经有f(n),那该怎么办呢?)?
T(n)  = 4T(n/2) + n
     <= 4(c(n/2)^2 - n/2) + n
      = cn^2 - 2n + n
      = cn^2 - n
T(n)  = 4T(n/2) + n
     <= 4(c(n/2)^2 - 2n/2) + n
      = cn^2 - 4n + n
      = cn^2 - 3n,