やなど、複数の表記があります。やなど、実際にそれらのバリエーションがあるのか、それとも数学的に正しくないのかと思いました。
それとも、をに改善できると言うのは正しいことでしょうか?私はまだランタイムを理解することはできませんし、必要もありませんし、何も改善する必要はありませんが、これが実際の関数の記述方法かどうかを知る必要があります。
やなど、複数の表記があります。やなど、実際にそれらのバリエーションがあるのか、それとも数学的に正しくないのかと思いました。
それとも、をに改善できると言うのは正しいことでしょうか?私はまだランタイムを理解することはできませんし、必要もありませんし、何も改善する必要はありませんが、これが実際の関数の記述方法かどうかを知る必要があります。
回答:
やなど、実際にそれらのバリエーションがあるのか、それとも数学的に正しくないのかと思いました。
はい、またはは有効なバリエーションです。
ただし、特に最終結果では、まったく表示される場合はほとんど表示されません。その理由は、 が です。同様に、 は です。初心者には意外かもしれません。ただし、これらの等式が多かれ少なかれ、大きな表記法が導入されたまさにその理由であり、ピン留めが困難で比較的重要ではないことが多い乗法定数係数を隠すためです。
をに改善することが可能であると言うのは正しいことでしょうか?
アルゴリズムの時間複雑さから変更された場合、それは全く改善しないでとまたはからのから、は、は。したがって、時間の複雑性がから改善されたと言うのは誤りです。もちろん、アルゴリズムの時間の複雑さはからに改善されていると言って間違いありません。
運動1.示すこと。
運動2.示すこと。
運動3.示すこと。
この表記法を使用しないことは常に自由です。つまり、関数をできるだけ正確に決定し、それを改善することができます。たとえば、比較を行う並べ替えアルゴリズムがあり、比較のみを行う別の並べ替えアルゴリズムを考え出すことができます。もちろん、あらゆる種類の関数が(理論的には)存在し、(実際には)発生する可能性もあります。
Big Ohの表記を神秘的な魔法として扱うのではなく、魔法使いに相談して何かできるかどうかを尋ねる代わりに、その定義を確認する必要があります。定義を尊重し、仕事を完了するために必要なことをすべて実行します。
基本的に、Big-O表記は、アルゴリズムの実行にかかる時間の記述ではありません。また、アルゴリズムが行うステップ数、コード行、または比較の説明でもありません。これは、アルゴリズムが入力数に応じてスケーリングする方法を説明するために使用される場合に最も役立ちます。
。対数は2を底としていますが、それは問題ではありません。関係の中心は、リストに定数値を乗算すると、時間に定数値が追加されるだけです。
これらの回答の多くは、基本的にBig-Oの定義を読んで自分でこの結論に到達するように指示していることに感謝します。しかし、この直感的な理解のために頭を一周するのにかなり時間がかかりました。そのため、できるだけわかりやすく説明しました。
O(f(n))の定義を見ると、たとえばO(2n ^ 2)とO(n ^ 2)はまったく同じであることがわかります。アルゴリズムを5n ^ 2演算から3n ^ 2演算に変更すると、40%改善されます。O(5n ^ 2)からO(3n ^ 2)への変更は、実際には変更ではなく、同じです。
もう一度、O(f(n))の定義を読みます。