0a002算法分析與設計ss lecture2_第1頁
0a002算法分析與設計ss lecture2_第2頁
0a002算法分析與設計ss lecture2_第3頁
0a002算法分析與設計ss lecture2_第4頁
0a002算法分析與設計ss lecture2_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2(Divideand 1

算法2.1BinarySearch(Tlr l1;while rifT[m]=xthenreturn elseifT[m]>mthenrelse W(n)W )

2

Divide-and-if|P|cthendividePintoP1,P2,…,fori=1toyi=Divide-and-ReturnMerge(y1,y2,…,

W(|P1|)W(|P2|)...W(|Pk|)f4kf(n)

f(ni)

f(n)af

n)b

d第一類方程:迭代法、換遞歸樹、嘗試法5 T(n)aT(n/b)dT(n)O(nlogba)ad(n)=

O aT(n)

O(n)O(nlog

abaO(nlogba a例2.1測條件:有n片,(好至少比壞多1片). BA,B或A,B都命題2.1當n是偶數時,在上述規則下,經過一輪淘汰,剩下的好比壞至少多1片.與B都壞有k組,淘汰后,好數i,壞數k2i+2j+2k=2i+j>2k+ji>注:當n是奇數時,用其他測試輪空,如果輪空是好的,算法結束;否則淘汰輪空. n (3)

W(n)算法2.31.kwhilek>3將分成k/2組//輪空,特殊處fori=1tok/2if2then,則任取1else2k剩下的ifkthen任取2片測if1好1then取沒測的else任取1片被測ifk 9 問題:設aa an an/2a na(n–1)/2a(n–1)/2 nW(n)=W(n/2)+(1)W(n)=(logn)FibonacciFibonacci1,1,2,3,5,8,13,21,Fn=Fn-1+Fn-增加F0=00,1,1,2,3,5,8,13,21,定理2.1{Fn}Fibonacci

n 1M1T(n(logn

M00例2.3設XYnn2k 令X=A2n/2+B,Y=C2n/2XY=AC2n+(AD+BC)2n/2+BDW(n)=4W(n/2)+cn,W(1)=1W(n)=O(n2)代數變換ADBCA-BD-CACBDW(n)=3W(n/2)+cn,W(1)=1 A,B為兩個n階矩陣,n=2k,計算C=W(n分治法 A12 B12 C12

22 22 22W(n8W(n/2)W(1)= W(n)=

C12C22

Strassen M1=A11(B12-B22 W(n)7W(n)18(nM2=(A11+A12)B22M3=(A21+A22)M4=A22(B21-

M5=(A11+A22)(B11+B22 W(n)O(nlog27M6=(A12-A22)(B21+B22 O(n2.8075M7= B11+B12C11=M5+M4-M2+M6C12=M1+M2C21=M3+C22=M5+例2.5輸入:集合S中有n個點,n>1,分治策略:子集PPLPR||||P2|||P2輸入:n個點的集合P,X和Y分別為橫、縱坐標數組在l右邊MinDidtance(PL,XL,YLLPLMinDistance(PR,XR,YRRPR6.=min(L,Rd (/2)2

/ 2/442/2 252/365/檢查1個點是常數時間,O(n)個點需要O(n)時間OT(n)2T

n)2

O(nlogT(n) n由遞歸樹估計T(nW(n)T(n)O(nlog2T(n)2T(n)2T(n)

nW(n)=P12P1234X.21Y234XXYifp<thenqPartition(A,p,uicksortxijwhiletruerepeatjjuntilA[j]repeatiiuntilA[i]ifi<thenA[i]A[jj j

i 27 W(n)W(n1)nW(1)1W(n)

n(n1)Θ(n222 T(n)2T(n)n2

T(n)T(n)

T(9n)T(n) T(n)

Θ(nlognn1729Ln個不等的實數當為偶數時,中位數有2個,i=/2,

fori2tonifmaxthen5.return算法FindMaxMinW(n)=n/2+2n/22=n+n/22=3n/2復雜性:W(n)=n1+n2=2n 1.k ifkthenkk/2elsekifk>1thengotosecondmax命題2.2max在第一階段的分組比較中總計進行了t/2k輪淘汰后只剩下一個元素max,利用t/2/2=n/2k=1.若n=2d,那么有k=d=logn=logn若2d<n<2d+1, W(n)=n1+logn1=n+logn找第k小的數 一,共nM=n/5個 S1S1C;ifk|S1|+1then輸出elseifthenelserA B Dr2r2r3r27r

n |A=D= r 行2:O(n)行3:W(n/5)行4:O(n)行8-9W(7r

W(7r2)W(7(nW(7n3)W(7n

1)2ww(n)W(n)W(7n)cncn9cn81cn...5n 0.95 LL

0.812j

j

1的2n je

e

i

ω0

2 2 iω2e

ω3

ω4ei1,

e4i 22

22

ω6

i,

e

2 2 Ax

溫馨提示

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

評論

0/150

提交評論