web-dev-qa-db-ja.com

Big-O表記と微積分

Big-O表記法に暗黙の微積分関係があるかどうか疑問に思いました。

たとえば、Big-O表記法に従って線形アルゴリズムを使用すると、問題のサイズが各ステップで一定量減少し、入力の各部分を一定回数調べることも含まれます。線形式の導関数は定数式であるため、パターンのヒントがいくつかあります。ただし、これらの事実を他のBig-Oクラスのアルゴリズムに一般化する方法を理解することはできませんでした。

導関数/反導関数は、アルゴリズムのBig-O記述をその動作と一致させるのに役立ちますか?

2
user10478

いいえ。

これが理由です。 O(n2)およびO(n)は、これらの上限の違いが1であることを教えてくれます。問題は、その違いを気にしないことです。 O(n2)およびO(n!)。どちらも好きです(私はO(n * log n)が好きです)が、nが重要な場合、O(n!)は厄介です(nは重要ではなく、誰もこれを気にしません)。オン2)およびO(n10)私が気にしないほど十分に近いしたがって、ここではデリバティブは誤った詳細に重点を置いています。変化率は気にしていません。変更のカテゴリに関心があります。

その理由は、n log nカテゴリのコードは、(自明な解決策がない限り)たいていの場合優れており、他のコードは大幅な改善の余地があるためです。つまり、nが十分に大きく、だれでも気に入る場合です。

実際、私は適用されたアルゴリズムの3つのカテゴリを持っています:些細な、最適化された、がらくた。

適用されたアルゴリズムをそれらに分類するのに役立つ方法を見つけてください。そうすれば、チューリング賞を獲得できます。

2
candied_orange