下面是代碼:這種最壞情況分析是否正確?
int Outcome = 0;
for (int i = 0; i < N; i++)
for (int j = i+2; j = 0; j--)
Outcome += i*j;
這裏是我的分析。由於第一行是賦值語句,因此這需要一個時間單位O(1)。第2行的分解爲:1 + N + N = 2N + 2.由於循環的內容是單個操作,所以第3行 循環及其塊執行i + 1操作。這也是一個嵌套的for循環。最後,第4行需要執行一個時間單位。因此,用N代表的這個代碼的大哦表示是O(N )。
聽起來對我來說是正確的。做得好! –
'x^2'是二次方程,它是在階數'2'的'x'上的多項式。你可以說你的複雜性是'O(i * j)'和'j = O(i)',因此你有'O(n^2)'......每當你有一個嵌套循環時,它通常是'O n^2)':) – Bill
請參閱CS上的[此依賴嵌套循環複雜性](http://cs.stackexchange.com/questions/4590/big-o-nested-for-loop-with-dependence)問題。 – user2246674