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