1,算法时间复杂度的定义html
算法时间复杂度用来度量算法执行时间。影响算法执行时间的因素有:算法
衡量时间复杂度一般有两种方法:过后统计和事前分析。函数
过后统计是指运行依据算法编制的程序,由计算机统计算法执行的时间。依据算法编制程序耗时耗力,并且同一个算法选用不一样的程序语言编写执行效率可能不一样,同一个程序选用不一样的编译器编译的机器码质量也可能不一样,不一样配置的计算机执行机器指令的速度也千差万别。这些因素都有可能掩盖算法自己的优劣,不适合做为算法评估的通用方法。spa
为了避开过后统计的诸多缺点,采用事前分析,单单评价算法选用的策略的优劣。此时算法执行时间与算法语句执行的次数相关,而语句执行的次数每每与问题的规模相关,即与输入数据的数量的多少有关。因为只是定性的分析算法的优劣,因此没有必要精确计算算法执行的时间,使注意力集中在增加率上,由此引入渐进时间复杂度,简称时间复杂度。常使用最深层循环内的语句中的原操做的执行频度来表示。.net
2,算法时间复杂度的计算方法设计
3,经常使用算法时间复杂度的比较code
1-4代表算法时间效率比较高,5代表通常,6-7比较糟糕htm
4,算法时间复杂度分析实例blog
1 temp = i; 2 i = j; 3 j = temp;
1 i = 1; 2 while(i <= n) 3 { 4 i = i * 2; 5 }
1 sum = 0; 2 for(i=1;i<=n;i++) 3 { 4 sum = sum + i; 5 }
1 sum = 0; 2 for(i=1;i<=n;i++) 3 { 4 for(j=1;j<=n;j++) 5 { 6 sum++; 7 } 8 }
1 sum = 0; 2 for(i=1;i<=n;i++) 3 { 4 for(j=1;j<=i;j++) 5 { 6 for(k=0;k<j;k++) 7 { 8 sum = sum + 2; 9 } 10 } 11 }
5,参考资料编译器