x=0;y=0;for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+y;

其中x=x+y运行了几步啊

  从两个方面对你的问题进行解答:

  1.实验。令x=0,y=1,每运行一次x=x+y,x都会加1,所以最后x的值就是其运行值。测试程序如下:

  运行结果:


  2、从理论说明。外层给定一个n,内部两层就会循环1+2+3+....+n次,所以总的循环次数为:1+(1+2)+(1+2+3)+(1+2+3+4)+.....(1+2+3+4+.....+n).这个结果等于多少呢?请看下面数学证明。


    证明过程:

    数列各项是:

  1

  1+2

  1+2+3

  ……

  1+2+3+……+N

  由于:

  1+2+3+……+N=N(N+1)/2=(N²+N)/2

  1²+2²+……N²=N(N+1)(2N+1)/6

  所以数列各项加起来就是:

  S(N)=(1²+1)/2+(2²+2)/2+(3²+3)/2+……+(N²+N)/2

  =[(1²+2²+3²+……+N²)+(1+2+3+……+N)]/2

  =[N(N+1)(2N+1)/6+N(N+1)/2]/2

  =N(N+1)[(2N+1)/6+1/2]/2

  =N(N+1)(N+2)/6

    综上,结果为N(N+1)(N+2)/6,时间复杂度为O(N的立方)


温馨提示:内容为网友见解,仅供参考
无其他回答

...for(int j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+y;
由于:1+2+3+……+N=N(N+1)\/2=(N²+N)\/2 1²+2²+……N²=N(N+1)(2N+1)\/6 所以数列各项加起来就是:S(N)=(1²+1)\/2+(2²+2)\/2+(3²+3)\/2+……+(N²+N)\/2 =[(1²+2²+3²+……+N²)+...

x=0;y=0; for (int i=1;i<=n;i++) for (int j=1;j<=i;j++){ for (in...
1.实验。令x=0,y=1,每运行一次x=x+y,x都会加1,所以最后x的值就是其运行值。测试程序如下:运行结果:2、从理论说明。外层给定一个n,内部两层就会循环1+2+3+...+n次,所以总的循环次数为:1+(1+2)+(1+2+3)+(1+2+3+4)+...(1+2+3+4+...+n).这个结果等于多少呢?请看...

x=0; for(i=1; i<n; i++) for (j=1; j<=n-i; j++) x++;
所以,T(n)=O(n(n-1)\/2)=O(n^2)

x=0;for(i=1;i<n;i++) for(j=1;j<n-i;j++)x++的时间复杂度是多少_百度...
所以数列各项加起来就是:S(N)=(1²+1)\/2+(2²+2)\/2+(3²+3)\/2+……+(N²+N)\/2 =[(1²+2²+3²+……+N²)+(1+2+3+……+N)]\/2 =[N(N+1)(2N+1)\/6+N(N+1)\/2]\/2 =N(N+1)[(2N+1)\/6+1\/2]\/2 =N(N+1)(...

For(i=1;i<n;i++) For(j=1;j<i;j++) For(k=1;k<j;k++) X=x+1; 算出...
中层是j从1到i-1,内层是k从1到j-1 里面的表达式是1,因为内部只有x使用了1次 于是化简为两个希格玛的嵌套公式,外层是i从1到n-1,内层是j从1到i-1 里面的表达式是1+2+...+(j-1)=j*(j-1)\/2 继续往下化简就有点麻烦了,涉及到高中数学的特殊数列的求和,你先看看这些能懂不?

x=0; for(i=1;i<n;i++) for(j=1;j<n;j++) x++时间复杂度
O(n的平方) i从1到n循环n次, j从1到n循环n次所以他的时间复杂度取最高次就是O(n的平方)

for(i=1;i<=n;i++){k++;for(j=1;j<=n;j++)x=x+k} 求时间复杂度?_百度...
f(n2)n2:n的平方

...for(int i=1;i<=10;i++){ for()int j=1;j<=i;j++} 的含义吗?_百度...
for(int i=1;i<=10;i++) 这个代表定义一个变量i,并赋给它初始值为1,分号中间的代表循环的条件,最后一个代表循环的内容。就是说,第一次循环:i的值为1,符合i<=10这个条件,就先执行中括号里面的东西(稍后再讲),然后再执行i++(就是i加一),这样到了下一次循环,i的值就为2,又...

x=0;for(i=1;i<n;i++) for(j=1;j<n-i;j++)x++的时间复杂度是多少_百度...
o(n的平方)i从1到n循环n次,j从1到n循环n次所以他的时间复杂度取最高次就是o(n的平方)

X=0;for(i=1;i<n;i++)for(j=1;j≤n-i;j++) x++;
for(i=1; i<n; i++) 就是 i 从 1 到 n-1,循环 n - 1 次 for(j=1; j<=n-i; j++) 就是 j 从 1 到 n-i,循环 n - i 次 总的时间复杂度为:(n-1)+(n-2)+……(n-(n-1))= n*(n-1) - (1 + 2 + …… (n - 1))= n*(n-1) - n*(n-1)\/2 = ...

相似回答