質問

ひとつの大きな-O記法は、 和則, ると思って二つの機能 $f_1$$f_2$ その複雑さに対応する機能 $g_1$$g_2$, その複雑さは $f_1+f_2=O(\max(g_1,g_2))$.

が何をした場合も複雑な機能が等しい?E.g.) の場合 $f_1(n)$ の選別の配列 $_f2(m)$ でも、その複雑さは $O(n\log(n)$$O(m\log(m)$.適用規則 $O(\max(n\log(n),m\log(m)))$.うみずもとの利回り有効なもunintuitive推定していますが一変数となります。その他にもなる。

その場合すな利用ルールが複数ある場合に、どの変数が関与しているか?

役に立ちましたか?

解決

もよりますが一部変数に依存しうる場合または与えられたパラメータの問題です。例えば、多くのグラフ関連の問題 $n$ できる頂点の数、 $m$ きのドアップ。この場合、 $m$ できると $O(n^2)$.このように一般の場合、いいアルゴリズムの最初の相走 $O(n)$ および第二段階に $O(m)$, 今回の追加の条件としようとしない簡素化---最終ランタイムは $O(n+m)$.

の複数の変数として与えられたパラメータのいないものに関して:eaving複数の変数の方程式の最終コースが準備されており、例えばでも置き換えることができまを乗じる $m imes n$ マトリクス、 $n imes p$ マトリクスの間 $O(mnp)$時間をschoolbook増殖し、又は解決のナップザック問題か $O(nt)$-時間が $n$ ある品目の個数を、 $t$ が対象。

特別な場合のように平面的グラフおよびその他の疎グラフを見ると、 $m=O(n)$, してもらえるので安全に代替 $n$$m$ 最終走行時間は簡略化のため、.

と余談ところなの疎グラフ( $m=O(n)$ 一希望Dijktraのループのすべて-ペアの最短経路として、他の閉鎖に基づくアルゴリズムのようにフロイド-Warshall);今まではDijkstra走 $O(m\log n)=O(n\log n)$, 全体の複雑さのために使用Dijkstraのループが $O(n^2\log n)$, るフロイド-Warshall.一方、Dijkstraの運行 $m\log n$ のために一般の場合には、密なグラフが $m=O(n^2)$, となり効率がよりフロイド-Warshallの面で最悪の事態を走ります。

そうでない場合には、可変なもpolynomially囲が指定されたパラメータ---のナップザックの例上記、 $t$ できる指数で $n$.

他のヒント

ありません一般の答えです。ようにしたい場合は、容易に $O(\max(n\log(n),m\log(m)))$, できる書き換えると $O(n+m)\log(n+m)$.

さらに、 $g_1$$g_2$ はeqaulを増やす機能を記述することができ $O(g_1(n+m)$ の代わりに $O(\max(g_1(n),g_2(m)))$.

により定義 $O(g)$ 必ず定義の変数を制限の点に関して検討 $O$.例えば、 $O(n^3)、n o\infty$ 変数 $n$ と限界点 $\infty$.に $O(x^3),x\0$ 変数 $x$ と限界点 $0$.

だから書いています $f=O(g)$, その正しいということは一変数の一部を制限す。例えば、 $f(n)=O(g(n))とn o\infty$ 正確な記録。ことに注意してくださ記録 $f(m)=O(g(m)、m o\infty$ 手段と全く同じ前回の刑に服している。

た場合について語性 $f_1+f_2=O(\max(g_1,g_2))$, そこちらも記載されて一部変数(s)の一部を制限す。で正確に記録すべきようなもの $$f_1(n)+f_2(n)=O(\max(g_1,g_2)(n)n o\infty$$ やしてさらなる解明に関して変数を想定し、限界点 $\infty$.

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top