13 下列程式片段的時間複雜度為何? for(i=n; i>0; i/=2)x++;
(A) O(NlogN)
(B) O(N)
(C) O(logN)
(D) O(1)
(A) O(NlogN)
(B) O(N)
(C) O(logN)
(D) O(1)
答案:登入後查看
統計: A(18), B(36), C(89), D(7), E(0) #2851795
統計: A(18), B(36), C(89), D(7), E(0) #2851795
詳解 (共 2 筆)
#5975089
這段程式碼中的迴圈會執行直到 i 的值小於或等於 1 為止,並且在每次迴圈中,i 的值都會除以 2。這表示迴圈將執行大約 log2(n) 次。
因為每次迴圈中只有一個固定的操作 x++,所以時間複雜度是 O( log2(n) )。這代表隨着輸入規模增加,運行時間的增長是以對數的方式增加。
3
0