-2
f(n)は何ですか?それはn^2か2n^2 + n/3か?そのような質問を解決するには?次のようにマスター定理を想起し、事前マスターメソッドを使用してT(n)= 9T(n/3)+ 2n^2 + n/3の時間複雑さを解く方法は?
f(n)は何ですか?それはn^2か2n^2 + n/3か?そのような質問を解決するには?次のようにマスター定理を想起し、事前マスターメソッドを使用してT(n)= 9T(n/3)+ 2n^2 + n/3の時間複雑さを解く方法は?
で ありがとう:recusion方程式
T(n) = b*T(n/c) + f(n),
与えられ、それはE = log(b)/log(c)
成り立つ:
f(n)
は、いくつかのeps > 0
ためO(N^(E - eps))
であれば、その後、T(n)
が入っていますTheta(n^E)
;f(n)
がTheta(N^E)
である場合、T(n)
はTheta(N^E * log(n))
です。f(n)
は、いくつかのd < 1
とn
十分な大きさのためにいくつかのeps > 0
、さらにb*f(n/c) <= d*f(n)
ためOmega(N^(E + eps))
であれば、その後、T(n)
はTheta(f(n))
です。それ以外の場合、マスター定理はあなたを助けません。 (あなたがすべての基本的なアルゴリズムの教科書、またはGoogleを使用してから、この定義を取得することができます。)
をあなたの定義から、我々はb = 9
とc = 3
とf(n) = 2*n^2 + n/3
を持っています。したがって、ケース2がE = 2
となり、f(n)
がTheta(n^2)
であることが容易に示されます。したがって、T(n)
はTheta(n^2 * log(n))
になります。
この問題は、ソフトウェア開発者が使用しているプログラミング上の問題、アルゴリズム、ツールではなく、コンピュータサイエンスの原則であるため、議論の対象外としています。 –