1、对于单循环的方式
我发现在实际的应用过程中他首先根据t(循环论次),找到对应的i的变换值;接下来找到i与t的关系+找到终止条件,两者联立方程就可以解出来O(n)的值
但是在双层循环中也可以使用这一点求解O(n),此时的双循环不在利用相加得到结果,而是两个循环变量的乘积(算出来n轮 循环遍历i的执行次数 以及 n轮循环变量j的循环次数,二者相乘就可求出结果O(n)
2、特别的是对于递归程序的时间复杂度分析,他不归类于任何一类,而是直接看他要干什么,求出O(n),比如算阶乘,那么 o(n)就是n,因为要执行n次循环相乘的过程
3、特别的是 while( x < n/2 ){ x *= 2) } 这个循环 需要执行 log2n次(本结论利用 单循环方法可以简单求出,建议背下来这个执行次数,很多题,比如双循环问题会有这个出现)
4、有一个很难的题目,建议多看以下