时间复杂度的一些计算规则
2016-07-18 21:36
441 查看
一些规则(引自:时间复杂度计算 )
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就会令这个算法不能动了,居于中间的几个则差强人意。
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就会令这个算法不能动了,居于中间的几个则差强人意。
相关文章推荐
- php安装redis扩展
- 高精度乘法计算 poj1001 Exponentiation C代码
- 1002. A+B for Polynomials (25)
- Android百度地图开发之显示当前位置地图
- httpd配置文件()
- Bootstrap的less
- workerman和swoole的区别
- C51控制矩阵键盘
- POJ2109 高精度(含大数开方)+二分
- PDA手持移动POS销售开单软件(网络版)、PDA手持设备小票机
- 如何安装FMDB
- 转行做程序员之前你应该考虑的三件事
- faster rcnn源码解读(四)之数据类型imdb.py和pascal_voc.py(主要是imdb和roidb数据类型的解说)
- Bootstrap的JavaScript插件
- webpack配置详解
- 数据库连接池以及C3P0和DBCP
- POJ 1236Network of Schools
- Android必备——经典的大牛博客推荐(排名不分先后)!!
- 毕业生网站:管理员权限
- 第一行代码permission denied for this window type