簡體   English   中英

一段Java代碼的運行時間

[英]Running time of piece of Java code

我試圖找出以下Java代碼片段的運行時間:

static void counter(int N) {
    int count = 0;
    for (int i = 0; i < N; i += 1) {
        for (int j = i + 1; j < N; j += 1) {
            count += 1;
        }
    }
    return count;
}

為了澄清起見,運行時間為\\ Theta(N ^ 2),對嗎? 對於j的每次迭代,外循環運行N次,內循環運行Nj次。 放在一起得到\\ Theta(N ^ 2)。

是的, Theta(n^2)是正確的。

內部循環運行(n-1) + (n-2) + ... + 1 + 0次迭代, 總計為 n * (n-1) / 2 = 0.5*n^2 - 0.5*n = Theta(n^2)

你是對的。

計算內循環為外循環的每次迭代運行的迭代次數,您將得到:

N-1 + N-2 + N-3 + ... + 1 =((N-1)* N)/ 2 = Theta(N ^ 2)

暫無
暫無

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

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