运行时和Big Theta分析

时间:2014-10-16 23:20:23

标签: algorithm big-o

所以,我正在进行Big Theta分析和运行时分析。

我有代码段

sum = 0
for i in range(0,n)
     for j in range (0,i**2)
         if j % 2 == 0:
              for k in range(0,j):
                   sum += 1

我声称它的运行时间为n ^ 3 * log(n ^ 2)。原因是第一行给出了n和内部第二个循环将给出n ^ 2所以我们有n ^ 3,但我不确定是log(n ^ 2)。我知道我们正在寻找能够给我们大约一半价值的均衡器,所以它可能是n ^ 2/2,但我有点不确定。

第二部分是找到g(n),使得f(n)是Theta(g(n))。因此,如果我的运行时间为n ^ 3,我知道g(n)也将是n ^ 3,因为它都在O(g(n)和Omega(g(n))中。我只想制作我确定我理解正确。

1 个答案:

答案 0 :(得分:0)

你怀疑log(n ^ 2)部分实际上是n ^ 2/2。在二元搜索的情况下,您通常会看到log(n),其中您在每次迭代时划分输入的大小。