Re: [理工] [DS]-時間複雜度

看板Grad-ProbAsk作者 (~口卡口卡 修~)時間16年前 (2010/01/07 23:30), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串5/17 (看更多)
※ 引述《yesa315 (XD)》之銘言: : T(n) = 3T(n/4) + nlog n 使用Θ表示 : 2 : 這有比較快速的算法嗎? 例如代換法?? : 用暴力法求解我也求不太出來 有請高手給個方向 : 謝謝! --- 令 T(n) + f(n) = 3[T(n/4) + f(n/4)] with f(n) = a*nlogn + b*n + c*logn + d → T(n) = 3T(n/4) + 3f(n/4) - f(n) = 3T(n/4) + (-a/4)nlogn - (3a/2 + b/4)n + 2c*logn + (2d-6c) 與原式比較係數後可得: ┌ (-a/4) = 1 ┌ a = -4 │ 3a/2 + b/4 = 0 → │ b = 24 │ 2c = 0 │ c = 0 └ 2d-6c = 0 └ d = 0 所以 f(n) = -4nlogn + 24n ____(1) 因此 T(n) + f(n) = 3[T(n/4) + f(n/4)] = 3^[log_4 (n)] * [T(1) + f(1)] = n^(log√3) * [T(1) + f(1)] → T(n) = T(1)*n^(log√3) + f(1)*n^(log√3) - f(n) = T(1)*n^(log√3) + 24*n^(log√3) + 4nlogn - 24n or T(n) = Θ{ nlogn } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.141.151

01/07 23:33, , 1F
這種解法一直看不懂@@
01/07 23:33, 1F

01/07 23:47, , 2F
你可以先想比較簡單的問題: T(n) = 3T(n/4)
01/07 23:47, 2F

01/07 23:47, , 3F
若要解出 T(n) 的 closed form , 要如何下手?
01/07 23:47, 3F
※ 編輯: doom8199 來自: 140.113.141.151 (01/08 01:33)

01/08 09:43, , 4F
其實這解法蠻有趣的 但是f(n)要怎麼猜?
01/08 09:43, 4F

01/08 09:45, , 5F
f(n)的可能有非常多種..有甚麼系統化的猜法嗎?
01/08 09:45, 5F
文章代碼(AID): #1BHVupu8 (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1BHVupu8 (Grad-ProbAsk)