时间复杂度的一些计算规则

来源:互联网 发布:ip切换器软件 编辑:程序博客网 时间:2024/05/21 08:46

一些规则(引自:时间复杂度计算 )

1) 加法规则

T(n,m) = T1(n) + T2(n) = O (max ( f(n),g(m) )

 

2) 乘法规则

T(n,m) = T1(n) * T2(m) = O (f(n) * g(m))

 

3) 一个特例(问题规模为常量的时间复杂度)

在大O表示法里面有一个特例,如果T1(n) = O(c), c是一个与n无关的任意常数,T2(n) = O ( f(n) ) 则有

T(n) = T1(n) * T2(n) = O ( c*f(n) ) = O(f(n) )

 

也就是说,在大O表示法中,任何非0正常数都属于同一数量级,记为O(1)。

 

4) 一个经验规则

复杂度与时间效率的关系:

c < log2n < n < n*log2n < n2< n3 < 2n < 3n < n! (c是一个常量)

|--------------------------|--------------------------|-------------|

         较好                    一般             较差

其中c是一个常量,如果一个算法的复杂度为c 、 log2n 、n 、 n*log2n,那么这个算法时间效率比较高,如果是 2n , 3n ,n!,那么稍微大一些的n就会令这个算法不能动了,居于中间的几个则差强人意。

0 0