簡體   English   中英

解釋算法的O(N)時間復雜度

[英]Explain the O(N) time complexity of the algorithm

誰能解釋以下算法的O(N)時間復雜度:

int count = 0;
for (int i = N; i > 0; i /= 2) {
    for (int j = 0; j < i; j++) {
        count += 1;
    }
}

count的增量countN+N/2+N/4+N/8+...<2N

如果遞歸地計算時間復雜度,則將有T(n) = T(n/2) + n 使用主定理可以得到結果,因為c = log_2(1) = 0n = \\Omega(n^c) (主定理的第三種情況)。 因此, T(n) = \\Theta(n)T(n) = O(n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM