Re: [理工] [演算法]遞迴求big oh
※ 引述《npes87184 (Freyalolz)》之銘言:
: t(n)=t(n-1)+t(n/2)+n
: 我是猜是n平方,可是證不出來。
: 還是說他不是n^2?
: https://www.dropbox.com/s/509h0ct1queq6sy/IMAG0120.jpg

我又來了
以下是不負責解法
就是亂猜的XD
t(n) =t(n-1)+t(n/2)+n ---------------------------------------(1)
t(n-1)=t(n-2)+t((n-1)/2)+(n-1)--------------------------------(2)
(1)-(2)得
t(n) =2t(n-1)-t(n-2)+t(n/2)-t((n-1)/2)+1---------------------(3)
t(n-1)=2t(n-2)-t(n-3)+t((n-1)/2)-t((n-2)/2)+1-----------------(4)
(3)-(4)得
t(n)=3t(n-1)-3t(n-2)+t(n-3) + t(n/2)-2t((n-1)/2)+t((n-2)/2)-----(5)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
另A(n)=3t(n-1)-3t(n-2)+t(n-3)
B(n)=t(n/2)-2t((n-1)/2)+t((n-2)/2)
則t(n)=A(n)+B(n)
而可以知道當n夠大時A(n)遞回的速度一定會比B(n)慢
所以可以直接忽略B(n)
(這裡有點牽強我在猜是否可以A(n)和B(n)都解開,但基本上A(n)有三個1的根,而
B(n)經過轉換後也只有兩個1的根,基本上還是不會超越A(n))
最後解A(n)=(a*n^2+b*n+c) 其中a.b.c為未定係數
最後得到t(n)=O(n^2)
唬爛完畢....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.189.36
推
03/13 21:39, , 1F
03/13 21:39, 1F
推
03/13 22:28, , 2F
03/13 22:28, 2F
→
03/13 23:13, , 3F
03/13 23:13, 3F
→
03/14 01:57, , 4F
03/14 01:57, 4F
→
03/14 01:57, , 5F
03/14 01:57, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):