我将此作为一个家庭作业问题,不记得在课堂上学习。有人能指出我正确的方向,或者有关于如何解决这些问题的文件吗?
答案 0 :(得分:2)
更正式......
首先,我们证明如果f(n) = 5n
,则f ∈ O(n)
。为了表明这一点,我们必须证明,对于一些足够大的k
和i ≥ k
,f(i) ≤ ci
。幸运的是,c = 5
使这一点变得微不足道。
接下来,我将为所有f ∈ O(n)
f ∈ O(n * log n)
证明。因此,我们必须证明,对于一些足够大的k
,所有i ≥ k
,f(i) ≤ ci * log i
。因此,如果我们让k
足够大f(i) ≤ ci
和i ≥ 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)为真