如何计算以下伪代码的封闭形式?

时间:2019-02-11 05:29:10

标签: c++ algorithm pseudocode

我需要以下问题的帮助:

分析以下程序片段的运行时间,并编写伪代码(在C ++中),该伪代码将输出此代码的值,但将在恒定时间内运行。您可以假定n在程序的前面给出了。

 sum = 0
 for i from 1 to n-1 do
   for j from i to n*n do
     sum = sum + i

我要做什么:我知道以下程序片段的时间复杂度为O(n 2 ),并且:

sum = n*n*(n)*(n-1)/2-(n-1)*n*(2*(n-1)+1)/6+(n-1)*n/2;

我不确定如何将其转换为伪代码格式。任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

 sum <- n*n*(n)*(n-1)/2-(n-1)*n*(2*(n-1)+1)/6+(n-1)*n/2

仅此而已。当您知道封闭式公式时,就不需要循环。

使用这种公式进行计算具有恒定的时间复杂度