从小例子看语句频度

//**********************

for(i = 1;i <= n; i++){
    for(j = 1;j <= n;j++){
    x = 0;
    for(k = 1;k <= n;k++)
        x += a[i][k] * b[k][j];
    c[i][j] = x;
   }
}

//**********************

首先来看看以上代码片段

分析:


首先看看语句1,是最外层循环,当看到循环结束条件是个n的时候,很兴奋的断定 :1的语句频度为n。然而高兴的太早,忽略了n前面的那个等号,条件为小于等于n的时候,当i为n+1才会终止语句1,故语句1的频度为 n+1;

再看语句2:
语句2是一个嵌套循环,相信大家都能很快的想到,它的频度应该两个数相乘的形式;在这里,应该理解到,执行语句2的条件,i最大为n,当i为n+1的时候,不会执行语句2,因此可以确定两个数中有一个n,同时和语句1相似,语句2本身会执行n+1次,最后一次是判断,所以语句2的频度为 n*(n+1)

语句3:
在执行这条语时,i和j最大都只能是n,所以3的频度为 n*n

语句4:
这又是一层循环,循环结束条件有等号,所以其本省会执行n+1次,因为嵌套两层的缘故,其频度为 n*n*(n+1)

语句5:
最内层循环的语句,没有异议,频度是n*n*n

语句6:
这里要注意不是在最内层循环(C语言花括号的用法),所以和语句3是一样的,频度为n*n



分享到这,有不对的望大家指正


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值