2017-04-09 15 views
0

以下のプログラムの時間の複雑さはどのくらいですかO(n^2)時間の複雑さの混乱

for (int i = n; i > 0; i += c) { 
    for (int j = i+1; j <=n; j += c) { 
     // some O(1) expressions 
    } 
} 

forループ条件j <= nのように権利を実行しないであろう、jの値が常にnより大きくなります。
ncは正の数である場合には、このlink

+0

何かが間違ってここに見えます。おそらく、最初のループで 'i - = c'を意味するのだろうか? – IVlad

+0

奇数のループセット - 外側のものはカウントダウンしているように見えますが、内側のものは条件によってカウントアップしていますが、どちらも同じ値でインクリメントしています(またはアップしています)。ここに正しい例があると思いますか? – davidbak

+0

はい@davidbak例が正しいです。私は元のリンクに入力エラーがあると思います。 –

答えて

1

における第三の点を確認し、[はいループための第二は実行されません。

forループは、そのリンクで誤って記述されているようです。

0

私は何著者が実際にここを意味する。このように

for (int i = n; i > 0; i -= c) { 
    for (int j = i+1; j <=n; j += c) { 
     // some O(1) expressions 
} 

だと思う、複雑さが(1+ n/c)*(n/2c)である= O(n^2)