版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2-算法效率分析基礎(chǔ)陸偉CollegeofSoftwareandMicroelectronics算法設(shè)計與分析IntroductiontotheDesignandAnalysisofAlgorithms
19January2023NorthwesternPolytechnicalUniversityLectureOverview1.算法效率的度量
2.函數(shù)的漸進(jìn)的界3.算法的基本復(fù)雜性類型4.
算法復(fù)雜性分析的基本方法5.非遞歸算法的復(fù)雜性分析6.遞歸算法的復(fù)雜性分析7.遞歸算法與非遞歸算法比較8.經(jīng)驗(yàn)分析方法9.算法可視化2算法效率的度量算法效率的高低體現(xiàn)在運(yùn)行該算法所需要耗費(fèi)資源的多少,對于計算機(jī)來講,最重要的資源是時間和空間,因此,算法效率又可分為時間效率和空間效率。分別用N,I和A表示要解決問題的規(guī)模、算法的輸入和算法本身,用C表示復(fù)雜性,那么,應(yīng)該有C=F(N,I,A)。如果吧時間復(fù)雜性與空間復(fù)雜性分開,分別用T和S表示,則T=F(N,I,A),S=F(N,I,A)。T=T(N,I),S=S(N,I)。3算法效率的度量計算機(jī)存儲容量的發(fā)展使得算法空間復(fù)雜性已經(jīng)不再是關(guān)注的重點(diǎn),但時間復(fù)雜性仍然十分重要。因此,我們后續(xù)也將主要討論算法的時間復(fù)雜性,但是所討論的方法對于空間復(fù)雜性分析也是適用的。根據(jù)T=T(N,I)的概念,它應(yīng)該是算法在一臺“抽象的計算機(jī)”上運(yùn)行所需要的時間。4算法效率的度量設(shè)該“抽象的計算機(jī)”所提供的元運(yùn)算有k種,分別記為O1,O2,…,Ok,又設(shè)每執(zhí)行一次這些元運(yùn)算所耗費(fèi)的時間分別為t1,t2,…,tk。對于給定算法A,統(tǒng)計其執(zhí)行過程中用到的元運(yùn)算Oi的次數(shù),記為ei,i=1,2,…,k。ei=ei(N,I)。其中,ti是與N和I無關(guān)的常數(shù)。5算法效率的度量我們不可能對規(guī)模為N的每一種合法輸入I都去統(tǒng)計ei(N,I),i=1,2,…,k。關(guān)于攤銷效率6函數(shù)的漸進(jìn)的界函數(shù)的漸進(jìn)的界設(shè)f和g是定義域?yàn)樽匀粩?shù)集N上的函數(shù)(1)f(n)=O(g(n))若存在正數(shù)c和n0使得對一切n≥n0有0≤f(n)≤cg(n)(2)f(n)=Ω(g(n))若存在正數(shù)c和n0使得對一切n≥n0有0≤cg(n)≤f(n)(3)f(n)=o(g(n))對任意正數(shù)c存在n0使得對一切n≥n0有0≤f(n)<cg(n)(4)f(n)=ω(g(n))對任意正數(shù)c存在n0使得對一切n≥n0有0≤cg(n)<f(n)(5)f(n)=Θ(g(n))?f(n)=O(g(n))且f(n)=Ω(g(n))(6)O(1)表示常數(shù)函數(shù)7函數(shù)的漸進(jìn)的界8函數(shù)的漸進(jìn)的界函數(shù)漸進(jìn)的界的基本性質(zhì)(1)設(shè)f和g
是定義域?yàn)樽匀粩?shù)集N上的函數(shù):(1)若,c為大于0的常數(shù),那么
f(n)=Θ(g(n))
(2)若,那么
f(n)=o(g(n))(3)若,那么
f(n)=ω(g(n))9函數(shù)的漸進(jìn)的界函數(shù)漸進(jìn)的界的基本性質(zhì)(2)設(shè)f,g,h
是定義域?yàn)樽匀粩?shù)集N上的函數(shù):(1)如果f=O(g)且g=O(h),那么f=O(h).(2)如果f=Ω(g)且g=Ω(h),那么f=Ω(h).(3)如果f=Θ(g)和g=Θ(h),那么f=Θ(h).(4)O(f(n))+O(g(n))=
O(max{f(n),g(n)})(5)O(f(n))+O(g(n))=
O(f(n)+g(n))(6)O(f(n))*O(g(n))=
O(f(n)*g(n))10函數(shù)的的漸進(jìn)進(jìn)的界界函數(shù)漸漸進(jìn)的的界的的基本本性質(zhì)質(zhì)(3)設(shè)f,g,h是定義義域?yàn)闉樽匀蝗粩?shù)集集N上的函函數(shù),,若對對某個個其它它的函函數(shù)h,我們有有f=O(h)和g=O(h),那么么f+g=O(假設(shè)f和g是定義域?yàn)樽匀粩?shù)集合的函數(shù),且滿足g=O(f),那么f+g=Θ(f).11函數(shù)的的漸進(jìn)進(jìn)的界界例:多項(xiàng)式式函數(shù)數(shù)f(n)=a0+a1n+a2n2+…+adnd,其中中ad≠0,證明明f(n)=Θ(nd)。證明。證明log對于b>1和α>0,logbn=o(nα),nα=o(bn)。n!=o(nn),n!=ω(2n),log(n!)=Θ(nlogn)12算法的的基本本復(fù)雜雜性類類型13算法復(fù)復(fù)雜性性分析析的基基本方方法(1)決定定表示示輸入入規(guī)模模的參參數(shù)。。(2)找出出算法法的基基本操(3)檢查基本操作的執(zhí)行次數(shù)是否只依賴于輸入規(guī)模。如果還依賴于輸入的其它特性,考慮最差、平均以及最優(yōu)情況下的復(fù)雜性。(4)對于非遞歸算法,建立算法基本操作執(zhí)行次數(shù)的求和表達(dá)式;對于遞歸算法,建立算法基本操作執(zhí)行次數(shù)的遞推關(guān)系及其初始條件。。(5)利用求和公式和法則建立一個操作次數(shù)的閉合公式,或者求解遞推關(guān)系式,確定增長的階。14非遞歸歸算法法的復(fù)復(fù)雜性性分析析對于等等差數(shù)數(shù)列{ak},對于等等比數(shù)數(shù)列{aqk},對于調(diào)調(diào)和級級數(shù){1/k},對數(shù)求求和,,15非遞歸歸算法法的復(fù)復(fù)雜性性分析析例16算法MaxElement(A[0..n-1]//求給定定數(shù)組組中的的最大大元素素//輸入::實(shí)數(shù)數(shù)數(shù)組組A[0..n-1]//輸出::A中的最最大元元素maxval←A[0]fori←1ton-1doifA[i]>maxvalmaxval←A[i]returnmaxval非遞歸歸算法法的復(fù)復(fù)雜性性分析析(1)算法法輸入入規(guī)模模:可可以用用數(shù)組組元素素個數(shù)數(shù)n度量(2)基本操作::比較與賦值值兩種,選擇擇比較(3)比較操作只只與輸入規(guī)模模相關(guān),不用用考慮最壞、、平均、最好好情況(4)建立基本操操作執(zhí)行次數(shù)數(shù)求和表達(dá)式式(5)確定增長的的階17非遞歸算法的的復(fù)雜性分析析18算法UniqueElements(A[0..n-1]//驗(yàn)證給定數(shù)組組中的元素是是否全部唯一一//輸入:實(shí)數(shù)數(shù)數(shù)組A[0..n-1]//輸出:如果A中的元素全部部唯一,返回回“true”,否則,返回回“false””fori←1ton-2doforj←←i+1ton-1doifA[i]=A[j]returnfalsereturntrue非遞歸算法的的復(fù)雜性分析析19template<classType>voidinsertion_sort(Type*a,intn){Typekey;//costtimesfor(inti=1;i<n;i++){//c1nkey=a[i];//c2n-1intj=i-1;//c3n-1while(j>=0&&a[j]>key){//c4sumoftia[j+1]=a[j];//c5sumof(ti-1)j--;//c6sumof(ti-1)}a[j+1]=key;//c7n-1}}非遞歸算法的的復(fù)雜性分析析20在最好情況下下,ti=1,for1i<n;在最壞情況下下,tii+1,for1遞歸算法的復(fù)復(fù)雜性分析21T(n)=an-1T(1)+(1)若取a=2,f(n)=O(1),漢諾塔問題題T(n)=O(2n-1)(2)若取a=1,f(n)=n-1,插入排序最最壞情況T(n)=O(n2)遞歸算法的復(fù)復(fù)雜性分析22T(n)=(1)若,ε>0,(2)若,,(3)若,,ε>0,遞歸算法的復(fù)復(fù)雜性分析當(dāng)f(n)為常數(shù)時當(dāng)f(n)=cn時23遞歸算法的復(fù)復(fù)雜性分析例24inthanoi(intn,inta,intb,intc){if(n=1)move(a,c);else{hanoi(n-1,a,c,b);move(a,c);hanoi(n-1,b,a,c);}}遞歸算法的復(fù)復(fù)雜性分析T(n)=T(n/3)+T(2n/3)+n25遞歸算法與非非遞歸算法比比較階乘問題26遞歸算法與非非遞歸算法比比較27intfactorial(intn){if(n==0)return1;returnn*factorial(n-1);}intfactorial(intn){intfn=1;for(inti=2;i<=n;i++)fn=fn*i;returnfn;}遞歸算法與非非遞歸算法比比較Fibonacci數(shù)列28邊界條件遞歸方程intfibonacci(intn){if(n<=1)returnn;returnfibonacci(n-1)+fibonacci(n-2);}遞歸算法與非非遞歸算法比比較29遞歸算法與非非遞歸算法比比較30staticintFibonacci2(intn){int[]a=newint[n];a[0]=1;a[1]=1;for(inti=2;i<n;i++){a[i]=a[i-1]+a[i-2];}returna[n-1];}遞歸算法與非非遞歸算法比比較31遞歸算法與非非遞歸算法比比較32并非所有遞歸歸算法都有非非遞歸定義。。Ackerman函數(shù)Ackerman函數(shù)A(n,m)有兩個獨(dú)立的的整型變量m≥0和n≥0,定義如下::當(dāng)一個函數(shù)及及它的一個變變量是由函數(shù)數(shù)自身定義時時,稱這個函函數(shù)是雙遞歸函數(shù)。遞歸算法與非非遞歸算法比比較Ackerman函數(shù)33A(n,m)的自變量m的每一個值都都定義了一個個單變量函數(shù)數(shù):m=0時,A(n,0)=n+2m=1時,A(n,1)=A(A(n-1,1),0)=A(n-1,1)+2,A(1,1)=2故A(n,1)=2nm=2時,A(n,2)=A(A(n-1,2),1)=2A(n-1,2),A(1,2)=A(A(0,2),1)=A(1,1)=2,故A(n,2)=2n。m=3時,類似的可可以推出A(n,3)=經(jīng)驗(yàn)分析法數(shù)學(xué)遠(yuǎn)遠(yuǎn)不是是萬能的,即即使許多貌似似簡單的算法法,有時也很很難用數(shù)學(xué)的的精確性和嚴(yán)嚴(yán)格性來分析析,尤其是在在做平均效率率分析的時候候。除了可以對算算法的效率做做數(shù)學(xué)分析以以外,另一種種主要方法是是對算法的效效率做實(shí)驗(yàn)和和經(jīng)驗(yàn)分析。。34經(jīng)驗(yàn)分析法35算法可視化參考36Summary9、靜夜四無無鄰,荒居居舊業(yè)貧。。。1月-231月-23Sunday,January1,202310、雨雨中中黃黃葉葉樹樹,,燈燈下下白白頭頭人人。。。。14:08:2814:08:2814:081/1/20232:08:28PM11、以我我獨(dú)沈沈久,,愧君君相見見頻。。。1月-2314:08:2814:08Jan-2301-Jan-2312、故人人江海海別,,幾度度隔山山川。。。14:08:2814:08:2814:08Sunday,January1,202313、乍見翻翻疑夢,,相悲各各問年。。。1月-231月-2314:08:2814:08:28January1,202314、他鄉(xiāng)生白白發(fā),舊國國見青山。。。01一月月20232:08:28下下午14:08:281月-2315、比不了得得就不比,,得不到的的就不要。。。。一月232:08下下午1月-2314:08January1,202316、行行動動出出成成果果,,工工作作出出財財富富。。。。2023/1/114:08:2914:08:2901January202317、做前,能能夠環(huán)視四四周;做時時,你只能能或者最好好沿著以腳腳為起點(diǎn)的的射線向前前。。2:08:29下午2:08下下午14:08:291月-239、沒沒有有失失敗敗,,只只有有暫暫時時停停止止成成功功??!。。1月月-231月月-23Sunday,January1,202310、很多事事情努力力了未必必有結(jié)果果,但是是不努力力卻什么么改變也也沒有。。。14:08:2914:08:2914:081/1/20232:08:29PM11、成功就就是日復(fù)復(fù)一日那那一點(diǎn)點(diǎn)點(diǎn)小小努努力的積積累。。。1月-2314:08:2914:08Jan-2301-Jan-2312、世間成事事,不求其其絕對圓滿滿,留一份份不足,可可得無限完完美。。14:08:2914:08:2914:08Sunday,January1,202313、不不知知香香積積寺寺,,數(shù)數(shù)里里入入云云峰峰。。。。1月月-231月月-2314:08:2914:08:29January1,202314、意志志堅強(qiáng)強(qiáng)的人人能把把世界界放在在手中中像泥泥塊一一樣任任意揉揉捏。。01一一月月20232:08:29下下午14:08:291月-2315、楚塞塞三湘湘接,,荊門門九派派通。。。。。一月232:08下下午午1月-2314:08January1,202316、少年十十五二十十時,步步行奪得得胡馬騎騎。。2023/1/114:08:2914:08:2901January202317、空山新雨后后,天氣晚來來秋。。2:08:29下午2:08下下午14:08:291月-239、楊柳散和和風(fēng),青山山澹吾慮。。。1月-231月-23Sunday,January1,202310、閱讀一一切好書書如同和和過去最最杰出的的人談話話。14:08:2914:08:2914:08
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中課件大全教學(xué)課件
- 高中技術(shù)高二上學(xué)期期中考試試題
- 南京工業(yè)大學(xué)浦江學(xué)院《自動化儀表與過程控制》2023-2024學(xué)年第一學(xué)期期末試卷
- 網(wǎng)絡(luò)培訓(xùn)課件教學(xué)課件
- doyoulikepears說課稿全英文
- 南京工業(yè)大學(xué)浦江學(xué)院《建筑工程造價》2022-2023學(xué)年第一學(xué)期期末試卷
- 《小手真干凈》說課稿
- 南京工業(yè)大學(xué)浦江學(xué)院《概率論與數(shù)理統(tǒng)計(理工)》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《主題短片創(chuàng)作II》2023-2024學(xué)年第一學(xué)期期末試卷
- 租地合同安全協(xié)議書(2篇)
- 危險廢物貯存場所建設(shè)方案及要求
- 中小學(xué)班會課評價表
- 型鋼橋梁拆除施工方案范本
- 指導(dǎo)青年教師記錄表
- 08江山實(shí)習(xí)區(qū)域地質(zhì)調(diào)查報告
- GB/T 10000-2023中國成年人人體尺寸
- 高中英語-The Sky Railway教學(xué)課件設(shè)計
- 數(shù)獨(dú)題目100題2(可打印)12951
- (完整版)《工程倫理》歷年真題
- 骨盆骨折PPT完整版
- 成人住院患者靜脈血栓栓塞癥的預(yù)防護(hù)理
評論
0/150
提交評論