1
以下の方法の時間的複雑さとその理由は何ですか?これの時間の複雑さとその理由は何でしょうか?
最初のforループのため、O(n)より大きい必要があります。
しかし、whileループ後の時間の複雑さはどうなりますか?
O(n)(n-1)= O(n^2 + n)ですか?
int fnA(int n) {
int sum=0;
for (int i=0; i<n; i++) {
int j=i;
int product =1;
while (j>1) {
product ∗= j ;
j = j/2;
}
sum += product;
}
return sum;
}
これは宿題の問題のようです。何を試しましたか?複雑さはここで多項式であり、 'O(n)'よりも大きい。ところで、 'O(n^2 + n)'はあまり意味がありません。漸近的に 'n^2'が支配的なので、その場合は' O(n^2) 'と書いてください。 –
@ウィリアムええ、それは私が準備している試験問題です。だからそれはO(n^2 + n)で、私は正しいのですか? :) – Naomi
まあ、あなたは正しい方向にありますが、上記のコメントを編集してください。 –