這是什麼代碼的時間複雜度? nlgn OR nlgn^2時間複雜度環
for (int i = 1; i <= n ; i*=2) {
for (int j = 1; j <= n ; j*=2) {
for (int k = 0; k <= j ; k++) {
x++;
}}}
這是什麼代碼的時間複雜度? nlgn OR nlgn^2時間複雜度環
for (int i = 1; i <= n ; i*=2) {
for (int j = 1; j <= n ; j*=2) {
for (int k = 0; k <= j ; k++) {
x++;
}}}
首先爲以對數n次()
第二個for循環也以對數n次()
第三個需要n次(linear growth
)
所以總時間=乘法,我們得到
日誌的n * log N * N
所以時間複雜度爲
爲O(n(LOGN)^ 2)
這種情況的時間複雜度爲n *((LOGN)^ 2)由於第一循環將用於LOGN運行倍的第二也將運行LOGN次和第三環將n次運行,因爲它將GP 1 + 2 + 4 + 8的總和。所以答案就是n *(LOGN)*(LOGN)
的可能的複製[如何找到時間算法的複雜度(http://stackoverflow.com/questions/11032015/how-to-find-time-複雜性的-的算法 – Carcigenicate
@minigeek謝謝你,好嗎 –
)@mohsensaeb歡迎您:) – minigeek