計算機問題求解:分治法與遞歸_第1頁
計算機問題求解:分治法與遞歸_第2頁
計算機問題求解:分治法與遞歸_第3頁
計算機問題求解:分治法與遞歸_第4頁
計算機問題求解:分治法與遞歸_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機問題求解

論題2-3

分治法與遞歸MergesortRevisited問題1:這個算法究竟是如何“排”序的?5 2 4 7 1 3 2 65 2 4 71 3 2 6DivideDividefurther,until…conquer問題2:人的思維“分而治之”如何變?yōu)樗惴ú呗缘哪??問題3:如何考慮分治算法的代價?遞歸代價與非遞歸代價導(dǎo)出遞歸式兩次遞歸,理想情況下每次問題規(guī)模是原來的一半。非遞歸開銷ncn

log

n確實比插入排序效率高。這里似乎假設(shè)n是2的整次冪,在我們涉及的大多數(shù)情況下,這不影響結(jié)果。問題4:書上的投資回報問題是怎樣被轉(zhuǎn)化為最大子數(shù)組問題的?Maximumsubarray簡單的遍歷所有可能的子序列MaxSum=0;

for(i=0;i<N;i++){ThisSum=0;

for(j=i;j<N;j++){

ThisSum+=A[j];if(ThisSum>MaxSum)MaxSum=ThisSum;}}returnMaxSum;thesequencei=0i=1i=2i=n-1jinO(n2)下面的過程遍歷的順序為:(0,0),(0,1),…,(0,n-1);(1,1),(1,2),…,(1,n-1),……(n-2,n-2),(n-2,n-1),(n-1,n-1)用分治法解最大子數(shù)組問題Part1Part2thesubwithlargestsummaybein:Part1Part2or:Part1Part2recursionThelargestistheresult問題5:跨中點的部分如何計算?非遞歸代價:常量遞歸,理想狀況下問題規(guī)模是原來的一半。非遞歸代價:線性非遞歸代價:常量O(n

log

n)矩陣乘法:似乎非得

(n3)1個n階方陣相乘的問題可以分解為8個n/2階方陣相乘的子問題。仍然是立方復(fù)雜度問題6:決定上面的遞歸代價比較大的原因是什么?問題7:你能否描述Strassen方法的基本思想?復(fù)雜的組合為了減少一次乘法諸Si只需通過加減法計算這個算法曾經(jīng)引起轟動問題8:你對于這個結(jié)果是否有感性認識?問題9:為什么降低子問題個數(shù)會導(dǎo)致復(fù)雜度的階下降?遞歸樹

T(size)nonrecursivecost對應(yīng)于T(n)=T(n/2)+T(n/2)+n的遞歸樹T(n)nT(n/4)n/4T(n/4)n/4T(n/4)n/4T(n/4)n/4T(n/2)n/2T(n/2)n/2對應(yīng)于分治法的遞歸樹方程divide-and-conquer:T(n)=aT(n/b)+f(n)Afterkthexpansion:T(n)=3T(

n/4)+(n2)cn2T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)c((1/16)n)2c((1/16)n)2…………c(?n)2c(?n)2c(?n)2log4ncn2…Total:

(n2)Note:c((1/16)n)2c((1/16)n)2c((1/16)n)2…………T(1)T(n)=aT(n/b)+f(n)f(n)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)T(1)f(n/b2)f(n/b2)f(n/b2)f(n/b2)f(n/b2)f(n/b2)f(n/b2)f(n/b2)f(n/b2)…………f(n/b)f(n/b)f(n/b)logbnf(n)…Note:aaTotal?…SolvingtheDivide-and-ConquerT(n)=aT(n/b)+f(n)作為一種典型的分治算法遞歸式:Letbase-casesoccuratdepthD(leaf),thenn/bD=1,thatisD=lg(n)/lg(b)LetthenumberofleavesofthetreebeL,thenL=aD,thatisL=a(lg(n)/lg(b)).Byalittlealgebra:L=nlg(a)/lg(b),lg(a)/lg(b)=logba因此,這個值決定了樹的“胖”度。Divide-and-Conquer:theSolutionTherecursiontreehasdepthD=lg(n)/lg(c),sothereareaboutthatmanyrow-sums.The0throw-sumisf(n),thenonrecursivecostoftheroot.TheDthrow-sumis,assumingbasecasescost1,or(

)inanyevent.Thesolutionofdivide-and-conquerequationisthenon-recursivecostsofallnodesinthetree,whichisthesumoftherow-sums.SolutionbyRow-sums[LittleMasterTheorem]Row-sumsdecidethesolutionoftheequationfordivide-and-conquer:Increasinggeometricseries:T(n)

(nE)Constant:T(n)

(f(n)logn)Decreasinggeometricseries:T(n)

(f(n))Thiscanbegeneralizedtogetaresultnotusingexplicitlyrow-sums.MasterTheorem對簡單的分治法解矩陣相乘,logba

=3。問題10:在比較兩個函數(shù)大小時,是什么意思?Polynomiallylarger/smallerUsingMasterTheoremUsingMasterTheoremMaster定理的條件有空隙T(n)=2T(n/2)+nlgna=2,b=2,logba=1,f(n)=nlgnWehavef(n)=(n1),butno>0satisfiesf(n)=(n1+),sincelgngrowsslowerthatn

foranysmallpositive.So,case3doesn’tapply.However,neithercase2appli

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論