作業(yè)算法第三章11-14saDivide將輸入的與自然數按奇偶取值分成各自子問題_第1頁
作業(yè)算法第三章11-14saDivide將輸入的與自然數按奇偶取值分成各自子問題_第2頁
作業(yè)算法第三章11-14saDivide將輸入的與自然數按奇偶取值分成各自子問題_第3頁
作業(yè)算法第三章11-14saDivide將輸入的與自然數按奇偶取值分成各自子問題_第4頁
作業(yè)算法第三章11-14saDivide將輸入的與自然數按奇偶取值分成各自子問題_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

Divide:ann的奇偶取值分成各自子問題an2的計Conquer:遞歸地求解子問題an2Combine:按表達式

ak,a2k

a將子問題相乘得到a return returnMidPro=productproduct=return遞歸表達式: a1,b2,nlogban0

f(n)(1)(nlogba),T(n)(nlogbalogn)(logDivide:Ann的奇偶取值分成各自子問題AnConquer:遞歸地求解子問題An2Combine:按表達式a2kakaka2k1akaka將子問題相乘得到AnA為kk矩陣(k為常數fori1toforj1tofork1toC[i][j]=A[i][k]*求實數矩陣An PE(單位矩陣 P=Matrix_Product(X1,33

2k2

遞歸表達式:

a

2,nlogb

n

2)1

n0:F(2)

k當nk11

i

2)1

1

5(2)

2)

2 2

k當nk11

5 2 2 1

5k1 2 2 2) if(n==0or return returnF(n-1)+F(n-

2)

1)F(n

2)

1)F(n)

2)

1)

1)

2)

1)abF(n)a

1

a,b為方程x2

a12

5

12

12

5

1 2

F(1)aF(0)1aG(n)

bn1,

1)aF(n)

bn1,根據a,b1

5n

1

5n

anbn

55

a

F(n)

(2nIf(n==0or returnelsefori=2toa[i]=a[i-1]+a[i-returna[n];(N是數組a可數列的上界)易得:時間復雜度為(n)。NN超出數組最大能11

10

11

21

11

11

11

設矩陣A ,則:An

n10

10

3.1(b)的算法可知:計算An的時間復雜度為F(n)的時間復雜度也為(n)。returnF(n)n很大時,(c)算法就顯得力不從心了,(d)算法是一種比n很大時也沒有問題。Divide:nCombine:分別找到左右兩邊離中位線最近的兩個點,這兩個點一定是“友誼AAABA點上方的點去ABA點下方的點去近點D,……Divide:n?(n)Conquer:遞歸地求解左半平面和右半平面的點的最角形周長C,時間復2T(n/2)。CC/2,即任意兩點的距離不能大于后的點的集合)C/2的圓,SR26最多有6個點,C2=1562*(n/2)*15=15n?(n)(x,yX[n],Y[n]中)(h,tif(Sreturnm=(p1,q1,r1)=(p2,q2,r2)=(p3,q3,r3)=returnMIN{(p1,q1,r1),(p2,q2,r2),(p3,q3,r3)};SL1=SL非臨界區(qū)點SR1=SR非臨界區(qū)點for(p(xp,yp)for(q(xq,yq),r(xr,yr)SR(ypC2yqypC2,y

C2y

y

C(xx(xx)(yy22 (xx)(y2 ((xx)(y2 Cd,記錄三點returnInitialization:n個點,都是未被處理的點;Maintenance:i=kk-1i=k這層循環(huán)中,i=i+1nn個點的凸包,問題解決。Divide:nq1,q2,…,qn的中位線,?(n)遞歸表達式:T(n)2T(n/2)?(n)if(nb==count0=m=count1=count2=returncount0+count1+count2;cross(p0,p1,p2)return(p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);fori=0toreturnmid=high=low=returnreturn(XL,XRTL,YR)if(midX== mid=elseif(midX>midY)midmid{XL,YR}; mid=mid{XR,YL};If(r1–h1== returnmidX=midY=if(midX== median=else median= median= 通過改動歸并排序MergeSort中Merge過程來統(tǒng)計數組反序的個數,當MergeSortn1=mid-n2=high-fori=0ton1-AL[i]=A[low+i-forj=0ton2-AR[j]=count=0;for(i=0,j=0;if(AL[i]<=A[k++]=A[k++]=A[k++]=A[k++]=returncount;count=mid=count+=count+=count+=Merge Sny值,y=x-S[i],?(logn),?(nlogn)。n1=mid-n2=high-fori=0ton1-SL[i]=S[low+i-forj=0ton2-SR[j]=for(i=0,j=0;if(SL[i]<=S[k++]=S[k++]=S[k++]=S[k++]=mid=returnmid=If(key==returnelsereturnBinarySearch(S,mid+1,high,key);Fori=1toY=x-ReturnReturnk%n0A[n]M=If(mReturn return基本思想如果某元素是最大值則該元素與其后一個元差是正數,О(logn)。 M1=Searax(A,n,low,mid-If(m1>= M2=SearIf(m2>= Return-輸出:集合{A[i]*B[j]|1≤i≤n,1≤j≤m}中的第k小的元素 Sum[i-1+j]=A[i]*B[j]M[1:m][1:n]x<M[1][1]或x>M[m][n]xM中。M[1][1]<=x<=M[m][n],則進行下面的算法:令i

1)

1)xM[i][j]若x<M[i][j],則x只可能存在矩陣M[1:i][1:n]或M[1:m][1:j]中,在這x。若x>M[i][j],則x只可能存在矩陣M[i:m][1:n]或M[1:m][j:n]中,在這x。xxM中。rowMid=colMid=if(x==returnElseif(x<(i,j)=If((i,j)!=(-1,-Return(

溫馨提示

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

評論

0/150

提交評論