ニュートン法を使用してユーザー定義の数値の平方根を計算するJavaプログラムを作成しました。アルゴの主な操作は次のようになります。
answer = guess - ((guess * guess - inputNumber) / (2 * guess));
while (Math.abs(answer * answer - inputNumber) > leniency) {
guess = answer;
answer = guess - ((guess * guess - inputNumber) / (2 * guess));
}
私は今、アルゴリズムの複雑さ(宿題です)を見つけようとしています。ここから、ニュートン法の時間計算量はO(log(n)* F(x))であることを読みました。
ただし、上記のコードスニペットから、時間計算量は次のように解釈されました。
O(1+ ∑(1 to n) (1) ) = O(1+n) = O(n)
ここで何が間違っているのかわかりませんが、wikiの説明を読んだ後でも、大きなOSの格差を理解できないようです。
また、「アルゴリズムの複雑さ」は「時間の複雑さ」と同義であると思います。そうするのは正しいですか?
私は初心者の学生であり、バックグラウンドに値するいくつかの「タッチアンドゴー」プログラミングモジュールを持っているので、このパラドックスを説明するのに助けていただければ幸いです。
前もって感謝します :)