1.
x=90;y=100;
while(y>0)
if(x>100)
{
x-x-10;
y--;
}
else x++;
时间复杂度:O(1)
2.
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=0;
时间复杂度:O(n*m)
3.
s=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
s+=B[i][j];
sum=s;
时间复杂度:O(n^2)
4.
i=1;
while(i<=n)
i=i*3;
时间复杂度:O(n)
5.
x=0;
for(i=1;i<n;i++)
for(j=1;j<n-i;j++)
x++;
时间复杂度:O(n^2)
分析:
对于外层循环变量i的取值从1到n-1,内层循环变量j的取值从1到n-i-1。 下面是内层循环的执行次数:
第一次循环: j的取值范围是1到n-1-1=n-2,循环次数为n-2次 第二次循环: j的取值范围是1到n-2-1=n-3,循环次数为n-3次 ... 第n-1次循环: j的取值范围是1到1-1=0,循环次数为0次
因此,内层循环的总执行次数为(n-2) + (n-3) + ... + 1 + 0,这是一个等差数列求和,可以使用等差数列求和公式计算:
(n-2) * (n-2 + 1) / 2 = (n-2) * (n-1) / 2
所以,这段代码的时间复杂度是 O(n^2)。
6.
x=n;//n>1
y=0;
while(x>=(y+1)*(y+1))
y++;
时间复杂度:O(√n)