参考资料:
视频内容整理:
假设有如下两段代码块
//执行次数 :2
public void test_01(){
int num = 1;
System.out.println("num :"+ num);
}
//执行3n+2次
public void test_02(int n){
for(int i = 0; i< n; i++){
System.out.println("num :"+ i);
}
}
上述两个代码块,如果被调用,分别会执行2次和3n+2次
第一个代码块被调用,两行代码分别被执行一次
第二个代码块被调用,示意图如下:
所以为3n+2次
如果用T(n)表示执行次数 那么
T(n) = 2;
T(n) = 3n+2
- 算法一般会用T(n)的简化估算值,来衡量代码执行的速度,简化的估算值叫时间复杂度,规则如下:
- 其中 m,n为变量(m为正整数),k1,k2,k3,k4,k5为常数
T(n) = k1 | 当表达式为常数时,那么时间复杂度为1.记为O(1) |
T(n) = k1*n^k2+k3*n^(k2-m)+k4 | 当表达式为变量时,取变量的最高次幂,去系数,那么时间复杂度为n^k2,记为O(n^k2)。如T(n) = 5*n^4-9*n^3+32时间复杂度为n^4,记为O(n^4) |
T(n) = k1*n^k2-k3*n^(k2-m)+k4 |
- 时间复杂度的优劣顺序
-
名称 时间复杂度 常数时间 O(1) 对数时间 O(log n) 线性时间 O(n) 线性对数时间 O(n log n) 二次时间 O(n²) 三次时间 O(n³) 指数时间 O(2^n) - 下面是一些常见的时间复杂度练习:
所以以此类推,有多少重循环,时间复杂度就是n的几次方
标签:num,复杂度,k2,k1,详解,时间,3n 来源: https://blog.csdn.net/qq_23095607/article/details/120188455
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。