我需要推导出这个表达式的 Big-O 复杂度:
c^n + n*(log(n))^2 + (10*n)^c
其中 c 是常数,n 是变量。
我很确定我了解如何单独推导出每个术语的 Big-O 复杂性,我只是不知道当这些术语像这样组合时 Big-O 复杂性如何变化。
想法?
任何帮助都会很棒,谢谢。
我需要推导出这个表达式的 Big-O 复杂度:
c^n + n*(log(n))^2 + (10*n)^c
其中 c 是常数,n 是变量。
我很确定我了解如何单独推导出每个术语的 Big-O 复杂性,我只是不知道当这些术语像这样组合时 Big-O 复杂性如何变化。
想法?
任何帮助都会很棒,谢谢。
答案取决于 |c|
如果 |c| <= 1 它是 O(n*(log(n))^2)
如果 |c| > 1 它是 O(c^n)
O() 表示法考虑最高项;考虑一下哪一个将主导非常非常大的n
.
在你的情况下,最高期限c^n
实际上是;其他的基本上是多项式的。所以,它是指数级的复杂性。
在典型用法中,不直接使用 O 符号的正式定义;相反,函数 f(x) 的 O 表示法是通过以下简化规则导出的:
- 如果 f(x) 是多项之和,则保留增长率最大的一项,而忽略其他所有项。
- 如果 f(x) 是多个因子的乘积,则省略任何常数(乘积中不依赖于 x 的项)。