在我们通过执行时间来表征算法的效率时,函数的数量级表示了随着 n 的值增加而增加最快的那些部分。数量级通常称为大O符号,写为 O(f(n)) 。它表示对计算中的实际步数的近似。
参数 n 通常称为‘问题的规模’,T(n) 是解决问题大小为 n 所花费的时间,即 1+n 步长。
比如 T(n)=1+n 。当 n 变大时,常数 1 对于最终结果变得越来越不重要。如果我们找的是 T(n) 的近似值,我们可以删除 1, 运行时间是 O(n)。要注意,1 对于 T(n) 肯定是重要的。但是当 n 变大时,如果没有它,我们的近似也是准确的。
另外一个示例,假设对于一些算法,确定的步数是 T(n)=5n^2 +27n+1005 。当 n 很小时, 例如1 或 2 ,常数 1005 似乎是函数的主要部分。然而,随着 n 变大,n^2 这项变得越来越重要。事实上,当 n 真的很大时,其他两项在它们确定最终结果中所起的作用变得不重要。当 n 变大时,为了近似 T(n),我们可以忽略其他项,只关注 5n^2 。系数 5 也变得不重要。我们说,T(n) 具有的数量级为 f(n)=n^2。 或者 O( n^2 ) 。