以下の機能の時間の複雑さはどのくらいですか?以下の関数の時間複雑度を計算するにはどうすればよいですか?
void function(int n){
for(int i=0; i<n; i++){. //n times
for(int j=i ; j< i*i; j++){ // n*n times
if(j%i == 0){
for(int k=0; k<j; k++){ // j times = n * n times.
++counter;
}
}
}
}
}
予約はO(n^5)
です。しかし、なぜ本がj%i
を考慮しなかったのか理解できませんでした。 k
ループはそれに基づいて決定します。明確にすることはできますか?
ありがとうございます。あなたは3つのループすべてがO(n^4)を取ることを提案していますか?私は少し混乱している。あなたは外側のループでも上で説明してください。 – Manoj
@Manoj私は物事を明確にするために別の答えを書いています。数分かかるでしょう –
@Manoj:複雑さはO(i^3)であり、0-nから変化するので複雑さはO (n^4)。少なくともそれは私が得ているものです。この本に言及することはできますか? –