2017-02-08 104 views
1

這是什麼代碼的時間複雜度? 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++; 
         }}} 
+1

的可能的複製[如何找到時間算法的複雜度(http://stackoverflow.com/questions/11032015/how-to-find-time-複雜性的-的算法 – Carcigenicate

+0

@minigeek謝謝你,好嗎 –

+0

)@mohsensaeb歡迎您:) – minigeek

回答

0

首先爲以對數n次(​​)

第二個for循環也以對數n次(​​)

第三個需要n次(linear growth

所以總時間=乘法,我們得到

日誌的n * log N * N

所以時間複雜度爲

爲O(n(LOGN)^ 2)

0

這種情況的時間複雜度爲n *((LOGN)^ 2)由於第一循環將用於LOGN運行倍的第二也將運行LOGN次和第三環將n次運行,因爲它將GP 1 + 2 + 4 + 8的總和。所以答案就是n *(LOGN)*(LOGN)