回 帖 发 新 帖 刷新版面

主题:求时间复杂度问题

[em10]for(j=0;j<=2*n;j++)
x++;
给出的两句频度分别是n*(2n+2)和n*(2n+1),我不清楚是怎么算出来的,请高手指点!

回复列表 (共5个回复)

沙发

???

板凳

for(j=0;j<=2*n;j++)里j从0到2n,也就是2n+1次,但是你前面的那个n应该是还有个相应的语句,你一定是题目掉了前面一部分:)

3 楼

不好意思,这题的全题为
for(i=0;i<n;i++)
{
y=y+1;
for(j=0;j<=2*n;j++)
x++;
}
给出的后两句频度分别是n*(2n+2)和n*(2n+1),我不清楚是怎么算出来的,请高手指点

4 楼

这里就很显然了,i是0到n-1,j是0到2n那么x++语句的频度就是n*(2n+1),y=y+1的频度就是n了,具体为什么,就是因为for语句的循环作用,我只能说到这了

5 楼

for(初始条件;供判断的条件;累加之类)
{语句;
}

for循环是先判断条件,再执行{}中的语句,不管条件是否符合,判断都是要先进行的

我来回复

您尚未登录,请登录后再回复。点此登录或注册