for(i=1;i<=n;i++) for(j=i;j<=n;j++) s++; 分析语句段执行的时间复杂度、

如题所述

i从1循环到n,j从i循环到n,s++这条语句总共被执行了(1+n)*n/2次,属于n^2数量级,所以时间复杂度是O(n^2)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-29
内循环 for(j=i;j<=n;j++) s++; 的总执行次数是n-i+1
i的取值范围是外循环就是1到n
所以总的执行次数是 n-i+1 i=1,...n 求和
代入即 n+(n-1)+...+1 也就是(n+1)n/2本回答被提问者和网友采纳
第2个回答  2013-03-26
。稍有夸张地说,如果一个语句i = 0,CPU需要的1,那么你需要的系统延迟10秒,在循环执行I = 0的10倍,你可以。你自然10秒,然后后面的代码执行。 CPU执行每个代码只是很短的时间耗费。

找到这个程序,你可以观察到的延迟,总的周期数为ms * 110正如上面说的1 ms的周期耗时的,如果你想达到你的延迟段长度的目的只能是决定传入的MS。毫秒更大的延迟就越长。

3。有关的代码,这中for(j = 110; J - J> 0);运行正常,但部分没有任何意义。要么改变
为(J = 110; J - ;);前面的代码一致更改为(J = 110; J> 0,J - );
相似回答