big-o 和 big-omega 与 big-theta 递归相关

big-o and big-omega related to big-theta recursion

假设一个递归公式是一个big-o(n^2),同时也是一个big-omega(n^2)。这是否意味着递归是 big-Theta(n^2)?

长话短说:答案是是的。请参阅下面的证明。

尽管每个人都听说过 big-o 符号,但让我们借助 Introduction to Algorithms 回忆一下这些符号的确切含义。对于一般情况,据说 O(g(n))Ω(g(n))Θ( g(n)),但我们会考虑你的。

O(n2)

O(n2) 表示法定义了一个 函数集 每个函数以下陈述成立:存在这样的正常数 cn0 使得 0 ≤ f(n) ≤ cn2 对所有 n ≥ n0[=143= 成立].

所以 f(n) 只是 O(n2) 的一个函数.例子 13n, -5, 4n2 + 5 .所有这些都属于 O(n2).

Ω(n2)

Ω(n2) 表示法定义了一个 函数集 每个函数以下陈述成立:存在这样的正常数 cn0 使得 0 ≤ cn2 ≤ f(n) 对所有 n ≥ n0[=143= 成立].

所以 f(n) 只是 Ω(n2) 的一个函数.示例 n4 + n - 1, 3n , n2 - 12。所有这些都属于 Ω(n2).

Θ(n2)

Θ(n2) 符号定义了一个 函数集 每个以下陈述成立:存在这样的正常数 c1, c2 n00 ≤ c1n2 ≤ f(n) ≤ c2n2 对所有 n≥n0

同样 f(n) 只是 Θ(n2) 的一个函数.这些是它的代表 n2/2 + 3, 5n2.

证明

我打赌说递归公式是一个 big-o(n^2),同时也是一个 big-omega(n^2) 你的意思是有一个函数(让我们称之为)f(n) 属于 Ω(n2)Ω(n2).

Ω(n2)我们有c1[=152的存在=]c1n2 ≤ f(n) 成立。从 O(n2) 我们有 c2[=143 的存在=] f(n) ≤ c2n2 成立。因此,我们存在 c1c2 c1n2 ≤ f(n) ≤ c2n2,这正是 Θ(n2) 的意思。