所以,我知道Big O本质上是一个函数/算法的时间复杂性,但是我的教科书在这个问题上是如此简短,很难解决这样看似简单的问题。
确定函数
的大O表示法f(n) = 1000n + 0.1n^2 + n ln x
我的尝试/猜测是O(n^2(n Ln x))
,但x不会被视为常数,因此省略了吗?
解决此类问题的最佳方法是什么?
提前致谢。
答案 0 :(得分:2)
我认为正确的答案是O(n^2)
。
看,你有一个总和f(n) = a(n) + b(n) + c(n)
,唯一重要的是“最大”(增长最快)的总和。让我们比较一下:
1000n
在n
0.1n^2
在n
中是n ln(x)
在n
中是线性的(无论x
是什么,f
不依赖于它,因此ln(x)
与{{1}一样不变}或任何其他固定数量)最大的是什么?右 - 立方二次项42
,因此答案是:“n^2
位于f(n)
”。