文章目录
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
时间复杂度如何计算
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的增大,其他内容永远比不上它的最大次数,得出
【5n^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)等于多少?