T(n)のビッグOとは何ですか?


7

私は式と順序を見つける必要がある宿題を持っています T(n) によって与えられた

T(1)=1T(n)=T(n1)T(n1)+1.

私がいることを確立してきた今は少し混乱しています。ある第二の部分のための正解?T(n)=1nT(n)O(1n)

big-Oの定義に基づいて、

O(g(n))={f(n)c,n0>0 s.t. 0f(n)cg(n) for all nn0}.

これはも当てはまるので、定義に基づいてf(n)=g(n)=1nO(1n) 正しいはずですが、現実の世界では、アルゴリズムよりも速くなることは不可能です O(1)

回答:


8

はい、すべての機能 f 満足させる f(n)O(f(n))。定義は意味があっても意味がありますf(n)関数の実行時間ではありません。確かに、この表記は数論から来ています。f(n)通常、いくつかのエラー項です。コンピュータサイエンスでも、実行時間やスペース要件以外のアルゴリズムを分析する際に、大きなO表記が使用されることがあります。


違いは T(n) とともに成長する 1n なので n 増加しますが、計算する操作の数 T(n) です O(1) 簡略化すると T(n)T(n)=1n または O(n2)宿題の問題で提供されている定義を直接使用する場合。
ケビン

1
@Kevin質問は、何かを計算するために必要な操作の数については何も述べていません。それは、繰り返し関係の解決策を求めているだけです。数値が長さや重みである必要がないのと同様に、反復の解決策は、アルゴリズムの実行時間である必要はありません。
David Richerby 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.