数据结构中频度怎样判断

前面省略,for(i=1;i<=n;i++)(1){for(j=1;j<=n;j++)(2){x=0;(3)for(k=0;k<=n;k++)(4)x+=a[i][k]*... 前面省略,for(i=1;i<=n;i++) (1)

{

for(j=1;j<=n;j++) (2)

{

x=0; (3)

for(k=0;k<=n;k++) (4)

x+=a[i][k]*b[k][j]; (5)

c[i][j]=x; (6)

}

他们频度为:(1)n+1 ; (2)n(n+1); (3)n*n;(4) n*n(n+1); (5)n的三次方(6)N的平方;

我的问题是步骤四为什么不是n*n(n+2) ?我理由是判断N+1后最后在判断一次退出循环!所以是这样!
展开
 我来答
satkk00
2011-02-23 · 超过10用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:0
展开全部

========================================
因为到n的时候,虽然已经不符合i<n了,但计算机要判断出这个仍需一次时间(当然判断出这个以后,后面的语句就不用执行了,所以/2/的频度是n),所以是n+1。
/2/ 前面/1/括号里已说明。从0到n-1,总共执行了(n-1)-0+1次。
/3/ 如果单独拿出这个内圈循环,频度为2*n-0+1+1。(注意是<=)再考虑外圈循环,相当于执行了n次的2*n-0+1+1,所以为n*(2*n+2)。
/4/ 同理1和2。内圈执行了2*n-0+1次,考虑外圈循环,则是n*(2*n+1)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式