程序片段1:
x=x+1;
程序片段2:
for(k=1;k<=n;k++)
{
x=x+1;
}
程序片段3:
for(k=1,t=1;k<=n;k++)
{
t=t*2;
for(j=1;j<=t;j++)
x=x+j;
}
程序片段4:
for(k=1;k<=n;k++)
{
for(j=1;j<=k;j++)
x=x+j;
}
程序片段5:
m=0;
for(k=1,t=1;k<=n;k++)
{
t=t*2;
for(j=t;j<=n;j++)
m++;
}
程序片段6:
m=0;
for(k=1;k<=n;k++)
{
for(j=1;j<=n;j++)
m++;
}
程序片段7:
m=0;
for(k=1;k<=n;k++)
{
for(j=1;j<=n;j++)
for(i=1;i<=n;i++)
m++;
}
1.O(1)
2.O(n)
3.外循环k遍历n次,对于每次循环,t都变为t的2倍,内层循环从1迭代到t,因此,当k=1,内层循环迭代2次,即2 ^ 1;当k=2,内层循环迭代4次,即2^2……到n次。总时间复杂度为2 ^ 1+2 ^ 2+2 ^ 3+……+2 ^n,计算等比数列,和为2 ^ (n+1)-2;即,O(2 ^ n)
4.外循环循环n次,内循环循坏1+2+3+……+n,计算等差数列,和为n(n+1)/2,即O(n^2)
5.外循环k遍历n次,对于每次循环t都变为t的2倍,内层循环从t遍历到n,当k=1时,t=2,内层循环从2循环到n,迭代n-1次;当k=2时,t=4,内层循环从4循环到n,迭代n-3次,总时间复杂度为n^2-1-3-5-……-(2*n-1),即约为O(nlogn)
6.外循环k遍历n次,内循环j遍历n次,总时间复杂度为n x n,即O(n^2)
7.最外循环遍历n次,内循环遍历n次,最内循环遍历n次,因此总时间复杂度O(n^3)