for(i=0;i<n;i++)(执行n+1次,频度n+1) ********

for(i=0;i<n;i++)(执行n+1次,频度n+1)*****************我想知道在上边那段程序中执行次数不是n次吗?怎么看出来是n+1次啊?书上就是... for(i=0;i<n;i++)(执行n+1次,频度n+1)
********
*********

我想知道在上边那段程序中执行次数不是n次吗?怎么看出来是n+1次啊?书上就是这样写的,看不懂啊
展开
 我来答
xtfnpgy
2015-01-06 · TA获得超过1784个赞
知道大有可为答主
回答量:1989
采纳率:76%
帮助的人:1106万
展开全部
是n次!
你看条件是i<n,如果是i<=n就是执行n+1次了;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
引风Eo
2018-03-01 · TA获得超过878个赞
知道答主
回答量:20
采纳率:0%
帮助的人:4.3万
引用uiojhi的回答:
 在数据结构中,频度是指一个定义变量在它的函数中,并且是它在执行到该段语句为止时,这个定义变量在函数总共执行基本操作的次数。
  例如下函数中各行频度n的计算:
  for(i=0;i<n;i++) ----------------------------- (1)
  for(j=0;j<n;j++) ------------------------- (2)  {  c[i][j]=0; ------------------------------ (3)
  for(k=0;k<n;k++) ------------------- (4)
  c[i][j]=c[i][j]+a[i][k]*b[k][j]; ------- (5)  }  (1.) for(i=0;i<n;i++) 频度为: n+1
  (2.) for(j=0;j<n;j++) n(n+1)
  (3.) c[i][j]=0 n*n
  (4.) for(k=0;k<n;k++) n*n(n+1)
  (5.) c[i][j]=c[i][j]+a[i][k]*b[k][j] n*n*n  }  解释:(1). i 变量在第一个 for 循环中,从取 i = 0 开始执行,直到i=n-1时为止,至此,i 执行了n次。但还没有完,i 还会再执行1次自加运算,故,频度共n+1 次;
  (2). 与(1)不同,当 i 在 0~(n-1) 范围内,内层循环[即是(2)的for循环]频度为 n ; 当 i = n 时,内层循环语句没执行。所以相当此时第(1)中 for 循环执行了n次,第二个for 循环执行了n+1次,即,频度共 n * (n+1);
  (3). 此句语句,是要利用(1)、(2)for循环语句的i ,j 对 c[i][j] 进行赋值,此时,i 得到的赋值只有从 0 到 n , j 得到的赋值也是从0到n ,都是 n次,此时(当 i 达到n-1 .\当 j 达到 n-1.)的 i++ \j++都不会执行。 故,频度共 n*n 次;
  (4). 同上(1),(3)的理由,单独的(4)的for 循环执行了n+1 次,综上,频度为 n*n*(n+1);
展开全部
之所以是n+1应该是i自增后又执行了一次判断条件造成的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uiojhi
推荐于2018-03-02 · TA获得超过5133个赞
知道大有可为答主
回答量:1154
采纳率:100%
帮助的人:329万
展开全部
 在数据结构中,频度是指一个定义变量在它的函数中,并且是它在执行到该段语句为止时,这个定义变量在函数总共执行基本操作的次数。
  例如下函数中各行频度n的计算:
  for(i=0;i<n;i++) ----------------------------- (1)
  for(j=0;j<n;j++) ------------------------- (2)  {  c[i][j]=0; ------------------------------ (3)
  for(k=0;k<n;k++) ------------------- (4)
  c[i][j]=c[i][j]+a[i][k]*b[k][j]; ------- (5)  }  (1.) for(i=0;i<n;i++) 频度为: n+1
  (2.) for(j=0;j<n;j++) n(n+1)
  (3.) c[i][j]=0 n*n
  (4.) for(k=0;k<n;k++) n*n(n+1)
  (5.) c[i][j]=c[i][j]+a[i][k]*b[k][j] n*n*n  }  解释:(1). i 变量在第一个 for 循环中,从取 i = 0 开始执行,直到i=n-1时为止,至此,i 执行了n次。但还没有完,i 还会再执行1次自加运算,故,频度共n+1 次;
  (2). 与(1)不同,当 i 在 0~(n-1) 范围内,内层循环[即是(2)的for循环]频度为 n ; 当 i = n 时,内层循环语句没执行。所以相当此时第(1)中 for 循环执行了n次,第二个for 循环执行了n+1次,即,频度共 n * (n+1);
  (3). 此句语句,是要利用(1)、(2)for循环语句的i ,j 对 c[i][j] 进行赋值,此时,i 得到的赋值只有从 0 到 n , j 得到的赋值也是从0到n ,都是 n次,此时(当 i 达到n-1 .\当 j 达到 n-1.)的 i++ \j++都不会执行。 故,频度共 n*n 次;
  (4). 同上(1),(3)的理由,单独的(4)的for 循环执行了n+1 次,综上,频度为 n*n*(n+1);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaiyi_1210
2015-01-06 · TA获得超过216个赞
知道小有建树答主
回答量:204
采纳率:53%
帮助的人:82.2万
展开全部
嗯,是N次,估计书上写错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-06
展开全部
执行n次,书上错了,
程序这种东西最好自己写一下试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式