多层for循环嵌套的语句频度分析(以及常数求和的应用)

第一次使用CSDN正式记录自己的学习收获。
学习算法的时间复杂度的渐进表示时所遇到的一个例子:计算多层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;

误把内层循环和外层循环混淆,结果分析了一下午,思维导图如下:
多层for循环嵌套的语句频度分析(以及常数求和的应用)_第1张图片
用常数的求和公式表示第三层(最深层循环)求和有多少个分支就有多少次循环(如上述思维导图中蓝色元素到绿色元素的过程)。此时要注意的就是外循环一次,内循环不止循环一次,再正常运算公式就能得到结果。
多层for循环嵌套的语句频度分析(以及常数求和的应用)_第2张图片
数学模型:
数学模型
平方求和公式:
平方求和

实践测试------------将n=4带入运算:

 #include 
 #include
 using namespace std;
 int main(){
 	   int n=4;
       for(int i=1;i<=n;i++)
       {
	   cout<

测试代码结果
成功解决了这个基础数学问题。(还是花了好多时间)

你可能感兴趣的:(多层for循环嵌套的语句频度分析(以及常数求和的应用))