按照从最有效到最复杂的顺序列出以下增长函数:
据我所知,通过n的强大功能,该功能被认为是最有效或最复杂的。但是,我不确定当有多个日志引用时如何继续。
我知道(5)是最复杂的,因为它具有指数n并且将以指数方式增加。 (6)在复杂性方面落后于它,因为它是多项式的。
现在我感到困惑。我认为(1)将在6之前,因为它的n 2 的值被添加到log函数中。然后(2)减去对数函数。然后(4)乘以它。这使得3对最有效,具有双对数。
我的猜测,最复杂的效率最高:
3
4
2
1
6
5
这是否接近正确或者我是否在左外地?
答案 0 :(得分:2)
记住所有a
的log(n) a ∈O(n)。您可以使用它将所有给定函数放入多项式/指数类别中:
现在您知道{1,2,3}< {4,6}< 5.
在 {1,2,3} 内,n•log(n)
是最小的,因为它是< n^2
。显然n^2 - x
&lt; n^2 + y
,因此2小于1.
在 {4,6} ,n^2•log(n) = n•n•log(n) < n•n•(n-100) = n^3-100n^2
内,自log(n) < n-100
以来为大n。
所以正确的顺序是3&lt; 2&lt; 1&lt; 4&lt; 6&lt; 5。
答案 1 :(得分:0)
总是试着找到增长最快的功能:顺序是n ^ n&gt;&gt; N! &GT;&GT; a ^ n&gt;&gt; n ^ a&gt;&gt; n * log(n)&gt;&gt; n&gt;&gt; log(n)&gt;&gt;日志(日志(N))。如果将这些函数相乘,则n * log(n)* log(n)的增长速度快于n n * log(n),因此顺序为:nlog(n)&lt; n ^ 2-nlog(n)&lt; nlog ^ 2(n)+ n ^ 2&lt; n ^ 2log(n)&lt; N R个-100n ^ 2。虽然我会说,n ^ 2-nlog(n)类似于nlog ^ 2(n)+ n ^ 2),因为增长最快的是n ^ 2,所以实际上日志并不有趣。