下面代码的时间复杂度是多少?

时间:2016-10-04 07:30:31

标签: time-complexity

sum =0;

            for (int i=1; i<n; i++) {

              for (int j=1; j< n/i; j++) {

                sum = sum +j;

              }

            }

在上面的外循环中,变量 i 从1运行到n,从而使外循环的复杂性为O(n)。 这解释了O(n logn)复杂度的 n 部分。

但是对于外部部分,当我们看到j然后从1运行到n / i时,意味着每当我为1时,复杂度为 n 所以我猜内部时间复杂度也应该 O(n)的

使总时间复杂度为O(n * n)= O(n ^ 2)。

1 个答案:

答案 0 :(得分:1)

使用Sigma表示法可以做到这一点:

enter image description here

H_ {n-1}是谐波函数:

Finding Big O of the Harmonic Series