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

What is the Difference between T(n) (reccurence relations), Big O and Big Theta

我想知道我的算法 class。 BigO, Big Theta, Recurrence relations (T(n)) 之间的区别好像不太清楚 例如:T(n) = 4T(n/3) + O(1)

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

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

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

不过,一旦有了递归关系,您通常会想要找出某种方法来了解它描述的函数类型。它描述的是线性函数吗?二次方的东西?指数级的东西?

Big-O 表示法Big-Θ 表示法 是描述函数长期增长率和对函数进行分类的工具按增长率分成不同的组。 Big-O 表示法用于给出函数的上限,而 big-Θ 表示法用于给出函数的上限和下限。

例如,使用主定理,我们可以声称上面的递归是 T(n) = O(nlog3 4).这样,我们的意思是 T(n) 隐式描述的函数大约以函数 nlog3 4 的速率增长。我们可以通过引入大 O 表示法的正式定义来将其形式化。

当我们说 T(n) = O(nlog3 4) 时,我们并不排除不过,T(n) 实际上可能是一个小得多的函数。例如,如果 T(n) = 5,那么 T(n) = O(nlog3 4 是真的,尽管它不是不多说。如果我们做出更有力的声明 T(n) = Θ(nlog3 4),我们断言,从长远来看, T(n) 以与 nlog3 4.

相同的速率增长

希望对您有所帮助!