时间复杂度a + b = O(n ^ 2)?

时间:2014-11-04 11:01:14

标签: algorithm big-o time-complexity

我正在阅读“算法简介”,并在第3章陷入困境,作者说“可能更令人惊讶的是,当a> 0时,任何线性函数an + b都是 在O(n ^ 2)“ 任何人都可以解释如何证明这一点吗?

2 个答案:

答案 0 :(得分:2)

根据定义,线性函数an + bO(n^2):对于足够大的nan + b小于cn^2且具有常量,例如{{1} }}

请注意c = 1是一个上限,但不是一个紧。一旦你能证明一个更严格的界限(在这种情况下O(n^2)上限),一个不那么紧的界限就没有用了。

答案 1 :(得分:1)

对于一个直觉,"大O"符号是从足够大的输入开始,成本函数不会比O(...)增长得快。这就是全部,它只是一个上限。

线性函数的增长速度不比二次函数,三次函数,指数函数等快。它们都增长得更快,因此an + bO(n^2),但O(n^3),{{ 1}},O(2^n)等。

然而,它的增长速度比对数快 - 所以你不能说它是O(n!)