[理工] [Algo]Substitution method

楼主: galapous (墨)   2015-01-03 21:33:59
有些递回树类型的题目,
猜出解后,利用substitution method证明时都写得很卡,
不确定自己写的够不够严谨,怕在这种基本题上丢掉分数,
比较大的问题在于取n0时不太知道该怎么写,
以下是我的证明过程,麻烦大家帮忙纠正.讨论,thx!
ex: T(n) = T(n/3)+T(2n/3)+n
pf: To prove T(n) = O(nlog n) ,
i.e. exist positive constant c,n0 s.t. T(n)<=cnlog n,for all n>=n0
T(1) = T(0)+T(0)+1 = 1 <= c.1.log 1不可能找到c使之成立
T(2) = T(0)+T(1)+2 = 3 <= c.2.log 2当c>=2时成立
T(3) = T(1)+T(1)+3 = 5 <= c.3.log 3当c>=2时成立
T(4) = T(1)+T(2)+4 = 8 <= c.4.log 4当c>=2时成立
T(5) = T(1)+T(3)+5 = 11 <= c.5.log 5当c>=2时成立
T(6) = T(2)+T(4)+6 = 17 <= c.6.log 6当c>=2时成立
(这边先猜n0=6,但还没算出c值不确定n0是否会变不知道该不该在这写n0=6)
Induction Hypothesis:假设6<=k<n时存在c使得T(k)<=cklog k成立
当k=n时 T(n) = T(n/3)+T(2n/3)+n
<= (cn/3)log n/3+(2cn/3)log 2n/3 +n
= (cn/3)(log n-log 3)+(2cn/3)(log n-log 3/2)+n
= cnlog n + n -(cn/3)log 3 - (2cn/3)log 3/2
<= cnlog n (取c=3)
by induction,取n0=6,c=3,T(n) = O(nlog n)得证
作者: j897495 (咪咪)   2015-01-03 21:58:00
想知道能不能画树出来当证明 因为这种题目分数应该不多

Links booklink

Contact Us: admin [ a t ] ucptt.com