算法性能评估-时间复杂度
来源:互联网 发布:php源码分析弱类型 编辑:程序博客网 时间:2024/06/10 03:12
时间复杂度是用来评估算法性能的一个重要指标,有以下对应的关系。
1 < log(n) < n < nlog(n) < n^2 < n^3 < 2^n < n! < n^n
(1) 1 表示常数。
程序执行的最大次数是可以估计到的,也就是说是一个常数。
(2) log(n)
如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的问题分解成一系列更小的问题,每一步都将问题的规模缩减成几分之一,一般就会出现这样的运行时间函数。在我们所关心的范围内,可以认为运行时间小于一个大的常数。对数的基数会影响这个常数,但改变不会太大:当N=1000时,如果基数是10,logN等于3;如果基数是2,logN约等于10.当N=1 00 000,logN只是前值的两倍。当N时原来的两倍,logN只增长了一个常数因子:仅当从N增长到N平方时,logN才会增长到原来的两倍。
(3) n
线性时间复杂度,常用的一个循环,就是这样的复杂度。
(4) nlog(n)
如果某个算法将问题分解成更小的子问题,独立地解决各个子问题,最后将结果综合起来,运行时间一般就是NlogN。当N=1 000 000时,NlogN大约是20 000 00020 000 000。当N增长到原来的两倍,运行时间超过原来的两倍,但超过不是太多。
(5) n^2
常见的双层循环
(6) n^3
常见的三层循环
(7) 2^n
指数级的时间复杂度。
在排序算法中经常会比较n^2和nlog(n)的时间复杂度。在稍后的排序算法中,再详细分析。
0 0
- 算法性能评估-时间复杂度
- 算法性能评估-时间复杂度
- 算法时间复杂度评估
- 评估算法的“时间复杂度”与“空间复杂度”
- 教你如何评估时间空间复杂度?
- 算法 时间复杂度|空间复杂度
- 算法 时间复杂度|空间复杂度
- 算法 时间复杂度|空间复杂度
- 算法时间复杂度&空间复杂度
- 算法-时间复杂度、空间复杂度
- 算法复杂度--时间复杂度,空间复杂度
- 算法的时间复杂度
- 算法时间复杂度
- 算法的时间复杂度
- 算法的时间复杂度
- 算法的时间复杂度
- 算法的时间复杂度
- 算法的时间复杂度
- JDBC-实现操作:增、删、改(DML)
- Spring中的字符编码过滤器
- TOJ 1547. To and Fro【栈和队列】
- Intellij IDE 使用集锦(更新中...)
- hdu 4642 Fliping game(博弈)
- 算法性能评估-时间复杂度
- 关于js 函数传递引用参数理解
- iOS-字典转模型(单模型)的实现
- iOS用代码实现导航栏NavigationBar与跳转(Objective-C)
- Fibonacci(斐波纳契)数列各种优化解法
- $(window).load(function() {})和$(document).ready(function(){})的区别
- 单调队列 fzu1894 志愿者选拔
- 网络下的数据传输之XML数据的解析
- 次小生成树