for(i=n/2;i<=n;i++) {
for(j=1;j<= n/2;j++) {
for(k=1;k<=n;k=k*2) {
statement;
}
}
}
このコードの複雑さは何ですか?n^2とログに記録されていると思いますが、私には答えてください。ネストされたforループの以下のコードの複雑さはどのくらいですか?
for(i=n/2;i<=n;i++) {
for(j=1;j<= n/2;j++) {
for(k=1;k<=n;k=k*2) {
statement;
}
}
}
このコードの複雑さは何ですか?n^2とログに記録されていると思いますが、私には答えてください。ネストされたforループの以下のコードの複雑さはどのくらいですか?
for(i=n/2;i<=n;i++) { // it is O(n)
for(j=1;j<= n/2;j++) { // it is O(n)
for(k=1;k<=n;k=k*2) { // it is O(log n)
statement;
}
}
}
ので、O(N^2 *(n個のログ))[アルゴリズムの時間の複雑さを見つける方法]の
ログnの仕組みは分かりませんでしたか?説明できますか? –
例えば、ここで長い回答が得られます。http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly?rq=1 ここでは、複雑さはlog2 nです。したがって、nが8倍になると、(最後のループでのみ)より多くの時間(log2 8)が必要になります。つまり、計算に3倍の時間がかかります。 – dmitry
ok ..本当にありがとう.. –
可能な複製(http://stackoverflow.com/questions/11032015/how-アルゴリズムの複雑さを発見する時間) –