Re: [問題] 遞迴改寫, 複雜度

看板Programming作者 (喲)時間11年前 (2012/10/09 23:46), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《wsx02 ()》之銘言: : 原題 http://ppt.cc/-87d : Q3(p,n) : { : if(n==0) return 0 : q = -無窮大 : for(i=1~n) : q = max( q, p[i]+Q3(p,n-1) ) : retrun q : } : 請問這個程式的複雜度是多少? : 應該怎麼改成比較好的寫法呢? : 謝謝 重解一次: 首先看原式, Q3(p, n-1) 對 Q3(p, n) 是恆定的值,卻被呼叫了n次. 其實可以抽取出來, Q3(p, n) if n == 0 return 0 q = -32767 q1 = Q3(p, n-1) for i = 1 to n q = max(q, p[i] + q1) return q 然後就解了. 這樣變成 O(n^2), 比原來的 O(n^n) 好得太多. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.55.99

10/09 23:48, , 1F
你真的好好的去讀一下演算法吧.
10/09 23:48, 1F

10/09 23:51, , 2F
你很煩,一直叫人看書,自己卻不看書
10/09 23:51, 2F

10/10 09:01, , 3F
真的是一直叫人看書,超煩
10/10 09:01, 3F

10/14 11:49, , 4F
偷懶一點,好好去把wiki(全部)讀一遍
10/14 11:49, 4F

10/14 12:42, , 5F
再偷懶一點,去書店把書架上的書名瀏覽一遍.
10/14 12:42, 5F
文章代碼(AID): #1GT4R5eQ (Programming)
文章代碼(AID): #1GT4R5eQ (Programming)