我需要用下面的问题有所帮助:
分析以下程序片段的运行时间和写(在C ++)的伪代码将输出这一点,但其值在一定的时间中运行。你可以假设n为早前在节目中给出。
sum = 0
for i from 1 to n-1 do
for j from i to n*n do
sum = sum + i
我所达:我知道,时间复杂度为以下程序片段且O(N2):
sum = n*n*(n)*(n-1)/2-(n-1)*n*(2*(n-1)+1)/6+(n-1)*n/2;
我不能确定如何把这个变成伪格式。任何帮助将不胜感激,谢谢!
sum <- n*n*(n)*(n-1)/2-(n-1)*n*(2*(n-1)+1)/6+(n-1)*n/2
就这样。有一个在当你知道封闭形式的公式循环没有必要。
计算与这样的公式具有恒定时间复杂度