Performance for循环的运行时间-第2部分

Performance for循环的运行时间-第2部分,performance,big-o,Performance,Big O,这将是我关于for循环运行时间分析问题的第2部分 包含解决方案,我对两个特定的“for”循环有疑问 有人能给我解释一下如何计算他们两个的运行时间吗。谢谢 一, sum=0; 对于(i=0;i

这将是我关于for循环运行时间分析问题的第2部分

包含解决方案,我对两个特定的“for”循环有疑问

有人能给我解释一下如何计算他们两个的运行时间吗。谢谢

一,

sum=0;
对于(i=0;i
二,

sum=0;
对于(i=0;i
第二个for循环语句(…,x)中“n”和其他变量的关系第一个片段是
O(n^5)

Top Loop    = 0 - O(n)   = O(n)   iterations
Middle Loop = 0 - O(n^2) = O(n^2) iterations
Inner Loop  = 0 - O(n^2) = O(n^2) iterations

Total = O(n^5)
Top Loop    = 0 - O(n)   = O(n) iterations
Middle Loop = 0 - O(n^2) = O(n^2) iterations
If statement enters: O(1 / n) times
Inner Loop  = 0 - O(n^2) = O(n^2) iterations

Total = O(n^4)
这是第一个代码片段的封闭形式解决方案:(通过Mathematica计算)

这是一个五阶多项式,因此它是:
O(n^5)

第二个代码片段似乎是
O(n^4)

Top Loop    = 0 - O(n)   = O(n)   iterations
Middle Loop = 0 - O(n^2) = O(n^2) iterations
Inner Loop  = 0 - O(n^2) = O(n^2) iterations

Total = O(n^5)
Top Loop    = 0 - O(n)   = O(n) iterations
Middle Loop = 0 - O(n^2) = O(n^2) iterations
If statement enters: O(1 / n) times
Inner Loop  = 0 - O(n^2) = O(n^2) iterations

Total = O(n^4)
这是第二个代码片段的封闭形式解决方案:(通过Mathematica计算)

这是一个四阶多项式,因此它是:
O(n^4)

进一步解释国际单项体育联合会声明的效力:

中间循环从0迭代到
i*i
。if语句检查
j
是否可被
i
整除。但只有当
j
i
的倍数时,这才是可能的


j
i
的倍数有多少次如果
0你能详细说明一下闭式,这就是我最感兴趣的。我在找这样的东西,所以你对我是如何得到这些闭式方程感兴趣的?对于#1,我得出了这样的总和(和j,j=0….i*i),i=0…….n)我更感兴趣的是封闭形式,而不是“最多”,这正是我所做的。我把三重循环表示成三重求和。然后我把它扔进Mathematica,它给了我这个结果。然后,我根据实际代码本身对其进行了验证。这同样适用于#2,但有一个if语句的扭曲。如果你对如何从三重求和到最终多项式的代数过程有兴趣,那就不容易了。我已经很久没有亲手做过这种事了。
Top Loop    = 0 - O(n)   = O(n) iterations
Middle Loop = 0 - O(n^2) = O(n^2) iterations
If statement enters: O(1 / n) times
Inner Loop  = 0 - O(n^2) = O(n^2) iterations

Total = O(n^4)
sum = -(1/12)*n + (3/8)*n^2 - (5/12)*n^3 + (1/8)*n^4