[英]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.