两个嵌套循环的大O复杂性

时间:2014-06-01 16:44:42

标签: big-o complexity-theory time-complexity

我试图找到以下算法的Big-O复杂性:

int i, j;
for (i = 0; i < n; i += 5)
{
    for (j = 1; j < n; j *= 3)
    {
        // O(1) code here
    }
}

n是传递给方法的数组的大小。由于i += 5j *= 3而挣扎于此。我知道这可能是错的,但我尝试了以下......

  • 外循环迭代n / 5次。那只是O(n)吗?

  • 内循环迭代log3(n)次。必须只是log(n)。

  • 由于它们是嵌套的,所以将这些复杂性加在一起。

  • 所以Big O复杂度只是O(n log(n))?

2 个答案:

答案 0 :(得分:2)

您可以按以下方式继续:

enter image description here

答案 1 :(得分:0)

是的,您是对的。时间复杂度为n(log n)-以3为底。

尝试为n取一个非常大的输入值,您将了解[(n / 5)*(log3n)]的图形工作相同。希望这会有所帮助。