如何看语句的频度 实在不能理解

img

为啥第二行的频度是n*(n+1) 还有后面的怎么看频度?我现在连频度都看不来

嵌套循环,最外层的执行次数和循环次数相同,内层的循环次数可以理解为外层为计数,为1时内层执行一轮,执行了n次,然后外层+1,内层继续执行下一轮n,第二轮的时候就是外层执行了2次,内层执行了2n次
第三行:因为处于两层循环内,本身又不是for()语句,双层嵌套循环,每次循环都是n,所以是n的平方
第五行:也是同样的道理,在三层for循环里面,所以是n的三次方

频度就是这行代码执行的次数。第一个for循环执行n+1次,是因为n次满足条件,最后一次不满足条件
第二个for循环是n * (n+1)次,是因为外层循环的前n次满足条件,会执行第二层循环,内层循环与外层循环一样,除n次满足条件外,还有一次不满足条件,都会执行这个循环语句。所以实际是n*(n+1)次
至于c[i][j]=0执行n的平方次,是同样的道理,因为内层循环只有n次满足条件会执行for循环函数体,两层for循环都只有n次是有效条件,所以执行n的平方次

频度计算是看的是执行过几次,包括判断,1到n,往下执行n次,但是到了n+1时,n+1>n,虽然不执行了,但是对于第一个for循环,它的频度就是n+1;
第二个for循环,它本身的频度是n+1,然后第一个for循环调度它执行了n次,那么第二个for循环的频度就是n * (n + 1);
第三个for循环,以此类推