再帰


7

再帰を調べています これは、特定されていないアルゴリズムの実行時間を示しています(基本ケースは提供されていません)。

T(n)=T(n/2)+T(n/3)+n,

帰納法を使用して、であることがわかりましたが、これはきついとは言われていません。実際、帰納的にすべてのと仮定しT(n)=O(nlogn)T(k)Cklogkk<n (そして十分に大きな値 k)、次に

T(n)Cn2logn2+Cn3logn3+n=C56nlognn(C/2+Clog3/31).

今私は選びます C 十分な大きさ (C/2+Clog3/31)>0、したがって、最後の式は C56nlognCnlogn

私の最初の質問は、これより厳しい制限は何ですか?

次に、Akra-Bazziメソッドを使用してこれを解決しようとしたので、 p 解決する

(12)p+(13)p=1.
それからおよそ p=0.79、および(と g=)なる
1gあなたあなたp+1dあなた=11あなたpdあなた=11p1p1
など

T=Θp1+11p1p1

これは Θ(np+11pn11pnp)、全体的に Θ(n)、以来 p<1。私の2番目の質問は、私はそれを本当に信じていないということですT 線形であるので、Akra-Bazziのアプリケーションで何が問題になりましたか?

宜しくお願いします。

回答:


5

もし T(1)6 そして T(2)12、それを示すことができます T(n)6n 誘導によって。

T(n)=T(n/2)+T(n/3)+n6(n/2)+6(n/3)+n=6n.

より一般的には、 c>6 そのような定数であること T(1)c そして T(2)2c、それから私たちは日常的にそれを証明することができます T(n)cn。信じられないように思えるかもしれませんが、

T(n)=O(n).

直感的に、 12+13<1、用語 T(n/2) そして T(n/3) 持ち上げるのに十分な大きさではありません n の力に n より大きな指数の。

Akra-Bazzi法の適用には何の問題もありません。 T(n)=Θ(n)


4

しましょう S=T/。その後S 再発を満たす

S12S2+1S+1。
特に、 C 満たす
12C+1C+1C
その後 S/2S/C 意味する SC。これはすべての場合に当てはまりますC6

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.