算法分析 - 增长问题的顺序

时间:2010-06-06 22:02:39

标签: algorithm

我正在研究增长“大哦”,“大欧米茄”和“大the”的订单。由于我无法输入这些小符号,我将按如下方式表示:

ORDER =大哦
欧米茄=大欧米茄
THETA =大theta

例如,我会说n = ORDER(n ^ 2)意味着函数n的大小为n ^ 2(n最多增长为n ^ 2)。

大部分时间我都明白这些:

n = ORDER(n^2)             //n grows at most as fast as n^2
n^2 = OMEGA(n)             //n^2 grows atleast as fast as n
8n^2 + 1000 = THETA(n^2)   //same order of growth

好的,这个例子让我感到困惑:

什么是n(n + 1)vs n ^ 2

我意识到n(n + 1)= n ^ 2 + n;我会说它与n ^ 2具有相同的增长顺序;所以我会说

n(n + 1)= THETA(n ^ 2)

但我的问题是,说:

也是正确的

n(n + 1)= ORDER(n ^ 2)

请帮助,因为这让我感到困惑。感谢。


谢谢你们!!

只是为了确保我理解正确,这些都是真的:

n ^ 2 + n = ORDER(2000n ^ 2)
n ^ 2 + n = THETA(2000n ^ 2)
n ^ 2 + n = OMEGA(2000n ^ 2)

2000n ^ 2 = ORDER(n ^ 2 + n)
2000n ^ 2 = THETA(n ^ 2 + n)
2000n ^ 2 = OMEGA(n ^ 2 + n)

因此,如果f = THETA(g),那么f = ORDER(g)和f = OMEGA(g)也是如此。

3 个答案:

答案 0 :(得分:6)

是,n(n + 1)=订单(n ^ 2)是正确的。

如果f = Theta(g),那么f = Order(g)和g = Order(f)都是正确的。

答案 1 :(得分:2)

Moron is correct,这是考虑它的最简单方法。

但是理解它,返回到f(n)= O(g(n))的定义:存在正M和n0,使得对于所有n> n0,f(n)< = Mg(n)。

假设M = 2。你能找到一个值n0,这样对于所有n&gt; n0,n ^ 2 + n <= M(n ^ 2)≤

(用笔和纸绘制两个函数,以了解它们如何相互增长。)

答案 2 :(得分:1)

您可以使用此简单表格轻松直观地了解这些符号的含义:

如果f(n)和g(n)是两个函数,那么

Growth Rate
if f(n) = Θ(g(n))   then     growth rate of f(n) = growth rate of g(n)

if f(n) = O(g(n))   then     growth rate of f(n) ≤ growth rate of g(n)

if f(n) = Ω(g(n))   then     growth rate of f(n) ≥ growth rate of g(n)

if f(n) = o(g(n))   then     growth rate of f(n) < growth rate of g(n)

if f(n) = ω(g(n))   then     growth rate of f(n) > growth rate of g(n)

此外,顺序总是按最高顺序编写,即如果顺序为O(n ^ 2 + n + 1),那么我们只需将其写为O(n ^ 2),因为n ^ 2是最高阶。

相关问题