最坏情况时间复杂度分析伪代码

时间:2015-04-18 17:49:48

标签: algorithm complexity-theory analysis

有人可以帮我解决这个伪代码的时间复杂度分析吗? 我在这里寻找最坏情况的复杂性,我无法弄清楚它是否是O(n ^ 4),O(n ^ 5)或其他完全不同的东西。如果您可以详细了解如何完全解决它,那将非常感激。

sum = 0
for i = 1 to n do
   for j = 1 to i*i do
       if j mod i == 0 then
          for k = 1 to j do
              sum = sum + 1

1 个答案:

答案 0 :(得分:1)

第一个循环:O(n)

第二次循环:i平均为n/2,你可以有一个确切的公式,但它是O(n²)

第三个循环在第二个循环中发生i次,因此平均n/2次。它也是O(n²),估计它。

所以它是O(n*n²*(1 + 1/n*n²)),我说O(n^4)1/n来自第三个循环在第二个循环内发生大约1/n次的事实。

这完全是一个球场估计,没有严格的证据,但它应该是正确的。您可以通过自己运行代码来确认它。