计算如下代码运行的次数,结果用n表示。
int x = 1, y = 1;
for (int i=1; i<=n;i++)
for (int j=1; j<=i;j++)
for ( int k=1; k<=j;k++)
{
x = x+ y;
}
简答分析如下:
当i=1时,j=1,k=1,次数为1;
当i=2时,j=1,k=1
j=2,k=1,2 次数为3;
当i=3时,j=1,k=1
j=2,k=1,2
j=3,k=1,2,3 次数为6;
经过归纳分析,当i=m时,次数为;
所以上述代码的总次数为
令,则,
又因为,
分别带入化简得到S=。
因此时间复杂度为O(),总次数为。