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