小编典典

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

algorithm

有人可以帮我解决这个伪代码的时间复杂度分析吗?我在这里寻找最坏情况下的复杂性,我不知道是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

阅读 360

收藏
2020-07-28

共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在第二个循环内大约发生了几次。

这完全是估算,没有严格的证据,但这应该是正确的。您可以自己运行代码来确认。

2020-07-28