2011-04-02 47 views
2

考慮下面的代碼:大O表示法有n^3嵌套for循環

for (int j = 0; j < 2n; j++) 
{ 
    for (int k = 0; k < n^3; k += 3) 
     sum++; 
} 

是複雜性爲O(n^2)? for循環中的n^3是否會影響LARGE N的符號?

回答

8

O(N^4)

總和++被稱爲2 * N *(N^3)/ 3倍。

5

如果只考慮內部循環,它就會被執行N^3倍

外環使得內層一個執行N次,所以總的複雜性= N * N^3 = N^4

2

外循環有O(2n)個操作。
內部循環有O(n^3)個操作。
在一起,程序有O(n)* O(n^3)= O(N^4)。

1

迭代的確切數量和增長的複雜性順序可以正式推斷:

enter image description here