for(i=1;i<=n;i++) for(j=i;j<=n;j++) s++; 分析语句段执行的时间复杂度、
答案:3 悬赏:40 手机版
解决时间 2021-11-20 00:40
- 提问者网友:风月客
- 2021-11-19 16:44
for(i=1;i<=n;i++) for(j=i;j<=n;j++) s++; 分析语句段执行的时间复杂度、
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-11-19 17:21
内循环 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
i的取值范围是外循环就是1到n
所以总的执行次数是 n-i+1 i=1,...n 求和
代入即 n+(n-1)+...+1 也就是(n+1)n/2
全部回答
- 1楼网友:青灯有味
- 2021-11-19 20:02
i从1循环到n,j从i循环到n,s++这条语句总共被执行了(1+n)*n/2次,属于n^2数量级,所以时间复杂度是O(n^2)
- 2楼网友:忘川信使
- 2021-11-19 18:30
。稍有夸张地说,如果一个语句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 - );
找到这个程序,你可以观察到的延迟,总的周期数为ms * 110正如上面说的1 ms的周期耗时的,如果你想达到你的延迟段长度的目的只能是决定传入的MS。毫秒更大的延迟就越长。
3。有关的代码,这中for(j = 110; J - J> 0);运行正常,但部分没有任何意义。要么改变
为(J = 110; J - ;);前面的代码一致更改为(J = 110; J> 0,J - );
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯