考慮下面的代碼:大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的符號?
考慮下面的代碼:大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的符號?
O(N^4)
總和++被稱爲2 * N *(N^3)/ 3倍。
如果只考慮內部循環,它就會被執行N^3倍
外環使得內層一個執行N次,所以總的複雜性= N * N^3 = N^4
外循環有O(2n)個操作。
內部循環有O(n^3)個操作。
在一起,程序有O(n)* O(n^3)= O(N^4)。
迭代的確切數量和增長的複雜性順序可以正式推斷: