28 根據下列的 C 程式碼片段,請問 sum++大約會執行幾次(N 為大於 1 的整數)? for(int k = 1; k < N; k = k*2) sum++;
(A)N次
(B) 2N 次
(C) log2N 次
(D) Nlog2N 次
答案:登入後查看
統計: A(43), B(83), C(320), D(31), E(0) #2910161
統計: A(43), B(83), C(320), D(31), E(0) #2910161
詳解 (共 2 筆)
#5624967
看迴圈for(int k = 1; k < N; k = k*2)
白話文:k的範圍在1~N之間,k每次*2(也就是2的k次方)。
假設N等於16,則k=4(因為2的4次方=16),所以N不管多大這個迴圈最多都只要做logN次就可以了
得到時間複雜度O(logN)
1
0