如何显示5n = O(nlogn)

时间:2011-05-18 02:46:43

标签: algorithm big-o

我将此作为一个家庭作业问题,不记得在课堂上学习。有人能指出我正确的方向,或者有关于如何解决这些问题的文件吗?

5 个答案:

答案 0 :(得分:2)

更正式......

首先,我们证明如果f(n) = 5n,则f ∈ O(n)。为了表明这一点,我们必须证明,对于一些足够大的ki ≥ kf(i) ≤ ci。幸运的是,c = 5使这一点变得微不足道。

接下来,我将为所有f ∈ O(n) f ∈ O(n * log n)证明。因此,我们必须证明,对于一些足够大的k,所有i ≥ kf(i) ≤ ci * log i。因此,如果我们让k足够大f(i) ≤ cii ≥ 2,那么结果就像ci ≤ ci * log i一样微不足道。

QED。

答案 1 :(得分:1)

查看big-O-notation的定义。这意味着5n将不会慢慢运行nlogn,这是真的。 nlogn是要执行的操作数的上限。

答案 2 :(得分:0)

我不记得正式定义的措辞,但你需要展示的是:

c 1 * 5 * n< c 2 * n * logn,n> c 3

其中c 1 和c 2 是任意常数,对于某些数字c 3 。用c 1 和c 2 来定义c 3 ,你就完成了。

答案 3 :(得分:0)

自从我触及big-O之后已经三年了。但我认为你可以试着证明这一点:

O(5n)= O(n)= O(nlogn)

O(5n)= O(n)很容易显示,所以你现在要做的就是显示O(n)= O(nlogn),这也不应该太难。

答案 4 :(得分:0)

你可以通过将L'Hopitals规则应用于limn->来证明它。无穷大5n / nlogn

g(n)= 5n且f(n)= nlogn

导出g(n)和f(n),这样你就会得到类似的东西

5 /(这里包含n的一些东西)

5 / infinity = 0所以5n = O(nlogn)为真