T(n)(递归关系),Big O和Big Theta之间有什么区别?

时间:2015-02-07 01:13:58

标签: algorithm big-o analysis recurrence big-theta

我想知道我的算法类。似乎不清楚BigO,Big Theta和递归关系(T(n))之间的区别是什么 例如:T(n)= 4T(n / 3)+ O(1)

1 个答案:

答案 0 :(得分:2)

递归关系是一种递归定义函数的方法。例如,递归关系

  

T(n)= 4T(n / 3)+ O(1)

表示定义了函数,如果你想确定T(n),你可以计算T(n / 3),乘以4,加上某个项为O(1)。您可以将递归关系视为一种描述函数如何定义的方式,而不会实际为其提供明确的公式。

但是,一旦你有一个递归关系,你通常会想出一些方法来了解它所描述的函数类型。它是否描述了线性函数?二次方的东西?有什么指数?

Big-O表示法 Big-Θ表示法是用于描述功能的长期增长率以及按功能增长率将功能分类到不同组的工具。 Big-O表示法用于给出函数的上界,而big-Θ表示法用于给出函数的上限和下限。

例如,使用主定理,我们可以声称上面的重复是T(n)= O(n log 3 4 )。这样,我们的意思是由T(n)隐式描述的函数大致以函数n log 3 4 的速率增长。我们可以通过引入big-O表示法的正式定义来形式化。

当我们说T(n)= O(n log 3 4 )时,我们并不排除T(n)实际存在的可能性但是,功能要小得多。例如,如果T(n)= 5,则确实T(n)= O(n log 3 4 ),尽管它并没有多说。如果我们强烈主张T(n)=Θ(n log 3 4 ),我们断言,从长远来看,T(n)增长与n log 3 4 的速率相同。

希望这有帮助!