13 下列程式片段的時間複雜度為何? 
 for(i=n; i>0; i/=2)x++;
(A) O(NlogN)
(B) O(N)
(C) O(logN)
(D) O(1)

答案:登入後查看
統計: A(18), B(36), C(89), D(7), E(0) #2851795

詳解 (共 2 筆)

#5404952
假設 n = 4 ix4122130跳...
(共 47 字,隱藏中)
前往觀看
10
0
#5975089

這段程式碼中的迴圈會執行直到 i 的值小於或等於 1 為止,並且在每次迴圈中,i 的值都會除以 2。這表示迴圈將執行大約 log2(n) 次。

因為每次迴圈中只有一個固定的操作 x++,所以時間複雜度是 O( log2(n) )。這代表隨着輸入規模增加,運行時間的增長是以對數的方式增加。

3
0