第一次使用优快云正式记录自己的学习收获。
学习算法的时间复杂度的渐进表达式所遇到的一个例子:计算多层for循环嵌套时的语句频度。语句频度即执行最多的语句(基本语句)重复执行的次数。
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
for(int k=1;k<=j;k++)
x=x+1;
误把内层循环和外层循环混淆,结果分析了一下午,思维导图如下:

用常数的求和公式表示第三层(最深层循环)求和有多少个分支就有多少次循环(如上述思维导图中蓝色元素到绿色元素的过程)。此时要注意的就是外循环一次,内循环不止循环一次,再正常运算公式就能得到结果。

数学模型:

平方求和公式:

实践测试------------将n=4带入运算:
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
int n=4;
for(int i=1;i<=n;i++)
{
co

本文详细解析了三重for循环嵌套时的基本语句频度计算方法,通过具体的数学模型和实例代码,阐述了如何正确理解和计算循环语句的执行次数,为理解算法的时间复杂度提供了一个实例。
最低0.47元/天 解锁文章
1万+





