簡體   English   中英

給定 C++ 代碼的時間復雜度是多少?

[英]What is the time complexity for the given C++ code?

代碼片段的時間復雜度是多少?

for (i = 0; i < N * N; i += N)
    k++;

我不確定它是 N^2 還是 N,因為在每個循環中都將 N 添加到 i 中。

上述程序的復雜度為 O(n),因為只有一個“for”循環。

“for”循環的嵌套順序提供了對最壞情況復雜度的粗略估計。

(有關更多信息,請參閱下面 Cigien 的評論)

最壞情況復雜度的粗略估計:

如果有 2 個 for 循環,其中一個嵌套在另一個中,則復雜度可能變為 o(n^2)。

如果有3個嵌套循環,那么復雜度可能會變成O(n^3)

...

O(n^2) 復雜度的一個例子:

for ( i = 1; i < P ; i ++ ) {
    for ( j = 1; j < Q; j++ ) {
        // some simple statements only
    }
}

O(n^3) 復雜度的一個例子:

for ( i = 1; i < P ; i ++ ) {
    for ( j = 1; j < Q; j++ ) {
        for ( k = 1; k < R; k++ ) {
            // some simple statements only
        }
    }
}

暫無
暫無

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

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