這個片段的時間復雜度是多少?我在理解如何找到具有不同條件的嵌套 for 回圈的時間復雜度時遇到了一些麻煩。
我原本以為會是 n^3 xn^2 給出 O(n^5),但它應該是 (n^3)^2 給出 O(n^6) 嗎?
for(int i = 0; i < n*n; i ) {
for(int j = 0; j < n*n*n; j ) {
A(); //O(1)
}
}
uj5u.com熱心網友回復:
如果您在內部回圈中正確遞增j(在內部回圈遞增步驟中替換i 為j ),它將是O(n?). 外回圈運行內回圈n2次數,每個內回圈運行n3次數;總數是嚴格乘法的,n2 * n3 == n?.
如所寫,它永遠不會停止運行 if n > 1(因為j永遠不會增加,所以如果內部回圈開始運行,它會永遠運行)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510096.html
標籤:C 算法时间复杂度大哥
下一篇:計算陣列中匹配物件數量的有效方法
