2016-05-24 9 views
0

私はアルゴリズムの紹介で大きなOの定義を読んでいますこの本は私の混乱について話しません。 O(n)= 3nがO(n)に属していることを知っています。O(n)に属するすべての関数がO(n^2)とO big Oは上限を記述しているので、正の整数定数cと正の整数定数n0を見つけることができるので、(n^3)とO(n^4)とO(n^k)k> 1 0≦n≦n0の場合、0 < = 3n < = cn^2答えがYESの場合、その定義が重大である場合、O(n)をT(n)= 3nと記述することを好む理由は何ですか?アルゴリズムのbig O

さらに、他の数学分野では、これらの表記法(ビッグO、ビッグセータ、ビッグオメガ)は使用されていますか?

必要な参照またはこの

+0

私は答えを見つけたと思います - **定義のために、big Oはタイトな上または上のいずれかの上限を表します。一方、通常の大きなOでは、ほとんどのケースでは人によって厳しい上限が記述されていました** – touchEngine

答えて

3

についての部分的な答えを話し、他の本を投稿してください:あなたの理解が正しいか、O(n)は、K> 1のためにはO(n^k)の厳密なサブセットです。

なぜ私たちはO(n)を好むのですか?あなたが好むと思われる製品(実際には25)の価格を尋ねる場合:a)100以下またはb)30以下: f (n)がO(n)にあるということは、f(n)がO(n^2)にあるというよりも多くの情報を与える。

それ以外はどこですか?例えば、近似の誤差項を記述する。

0

f(n)=O(g(n))は確かg(n)は漸近的な意味でf(n)に上限である、および任意の関数h(n)≥g(n)も上限である、f(n)=O(h(n))ことを表現しています。

たとえば、f(n)=O(n) => f(n)=O(n²)です。

しかし明らかに、ターゲット関数をより詳細にモデル化する上限はより面白く、がきつくと言われています。したがって、可能な上限のうち、わかっているときに最も厳しい境界が選択されます。

一部の関数では、同じg(n)も(漸近定数が異なる)下限であることがあります。これをf(n)=Ω(g(n))と表記します。このような場合、バインドは両方向にタイトで、1つはf(n)=Θ(g(n))と書いています。

もちろん、3n=Θ(n)でも、3n<>Θ(n²)です。

関連する問題