时间复杂度大O表示法[已关闭]

问题描述 投票:0回答:1
f=1;
x=3;

for (int i = 1; i <= n; i*=2) 
   for (int j = 1; j <= i * i; j++) 
      if (i % j == 0) 
         for (int k = 1; k <= j; k++) 
             f=f*x;

我不知道如何找到这段代码的时间复杂度 因为我不知道有多少次 if 陈述是正确的。

time-complexity big-o
1个回答
0
投票

我:n

j: 2^n

由于 i 是 2 的幂,并且每一步都会加倍,因此当且仅当 i 是 j 的倍数(即 j 是小于或等于 2 的幂)时,i % j == 0 才为真。

也就是说,第二维的条件频率具有对数频率。

log(2, 2^n) = n

© www.soinside.com 2019 - 2024. All rights reserved.