私は以下の関数の実行時の複雑さを理解しようとしています。与えられた数の素因数を求める。現在のインデックスに関連するサイズの配列の実行時の複雑さを計算するにはどうすればよいですか?
function test(n){
n = parseInt(n);
var factors = [];
for(var i = 2; i <= n; i++){
while((n % i) === 0){
factors.push(i);
n /= i;
}
}
return factors;
}
while
ループの実行は、i
の値に依存し、私はそれを計算またはIこれはO(N2)、右ではないはずできるか分かりませんか?
私は理解し始めました。それはまだ少し曖昧です、私は練習する必要があると思います。だから結果は「O(n * log(n)/ log(log(n))」と言うことができますか? – amone
@amoneはい、これは、数学のスタック交換記事を読んだ後の私の結論です。この束縛を 'n'と' n^2'の両方に対してプロットして、どこにいるのかを知ることができます。 –