#核心主要分为不同的循环循环次数
##一重循环
例如
while(n>(x+1)*(x+1))
x=x+1;
这个时候时间复杂度就是O(sqrt(n))
while(i<=n)
i=i*2;
时间复杂度O(log2n)
##二重循环
1.列出外层循环(i的变化)
2.列出内层循环执行次数
3.求和.
例一
int m=0;i,j;
for(i=1;i<=n;i++)
ffor(jj=1;j<2*i;++)
m++;
i从一到n,内层循环执行2,4 ,6·······等差数列
即n(2+2n)/2=n(n+1)即O(N*N).
例二
for(int i=0;i<n;i++)
for(int j=0;<m;j++)
a[i][j]=0;
i是从0到n,j是从0到m,
所以每个n都有m种可能即时间复杂度O(m*n)
##多重循环
1.可以理解为求三维体积
2.也可以理解为列式求和
for(int i=;i<=n;i++)
for(int j=0;j<=i;j++)
for(int k=0;k<=j;k++)
每个最大都是n;
可以理解为求立方体体积
即三个数相乘
即O(n*n*n),n的三次方,
列式的话就是直白的数学计算
通过以上例子其实可以举一反三。
掌握时间复杂度计算,对于做题是非常重要的额所以学着很有必要