0
点赞
收藏
分享

微信扫一扫

时间复杂度如何计算

文章目录

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


时间复杂度如何计算

01 概述

时间复杂度的计算即描述算法的运行时间,其中一段代码的总执行次数用T(n)表示。

T(n)-是代表执行多少次语句;
O(n)-简化的估算值(时间复杂度);


02 计算

02::01 例子:

public int test(int n){
   for(int i=0;i<n;i++){
     printf(i);
   }
   return 0;
}

其中:

int i=0   ---> 执行1次
i<n       ---> 执行n+1次
i++       ---> 执行n次
printf(i) ---> 执行n次
return 0  ---> 执行1

因此调用一次test方法的总执行次数为:T(n) = 3n + 3;

02::02 T(n) 如何得出 O(n)?

1、T(n) = 常数;
答案:
1)如果T(n)的执行次数为常数的话,时间复杂度可以直接估算为【1】;
2)即O(1);
2、T(n) = 常数*n + 常数;
答案:
1)去掉后面的常数,因为随着n的增大,前面越来愈大,后面值是不变的,相当于常数部分不存在,直接省略,得出【常数n】;
2)常数可以直接估算为1,所以它的时间复杂度是
【n】------------------>即O(n);
3、T(n) = 5n^3 + 9090*n^2 +78;
答案:
1)对于多项式来说,只要保留n的最高次方即可,因为随着n的增大,其他内容永远比不上它的最大次数,得出
【5
n^3】;
2)常数可以直接估算为1,所以它的时间复杂度是
【n^3】------------------>即O(n ^3);


03 总结

时间复杂度的表示方法就是如果T(n)是常数的话,那么时间复杂度就是O(1),
否则保留T(n)的最高次项并且去掉最高次项的系数。

例子:

T(n) = n + (n-2) + (n-1) + ……+2 + 1时,O(n)等于多少?
举报

相关推荐

0 条评论