數(shù)據(jù)結(jié)構(gòu)竇延平版的講義-時(shí)間復(fù)雜性_第1頁
數(shù)據(jù)結(jié)構(gòu)竇延平版的講義-時(shí)間復(fù)雜性_第2頁
數(shù)據(jù)結(jié)構(gòu)竇延平版的講義-時(shí)間復(fù)雜性_第3頁
數(shù)據(jù)結(jié)構(gòu)竇延平版的講義-時(shí)間復(fù)雜性_第4頁
數(shù)據(jù)結(jié)構(gòu)竇延平版的講義-時(shí)間復(fù)雜性_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、算法和算法分析1、算法:一個(gè)算法就是有窮規(guī)則的集合,其中的規(guī)則規(guī)定了一個(gè)解決某一個(gè)特定問題的運(yùn)算 序列。2、算法的時(shí)間復(fù)雜性和空間復(fù)雜性: ·問題的規(guī)模(n):或大小。如:矩陣的階數(shù)、圖的結(jié)點(diǎn)個(gè)數(shù)、被分類序列的正整數(shù)個(gè)數(shù) …… ·時(shí)間復(fù)雜性:算法的所需的時(shí)間和問題規(guī)模的函數(shù)。記為T(n)。當(dāng)n->∞時(shí)的時(shí)間復(fù)雜 性,被稱之為漸進(jìn)時(shí)間復(fù)雜性。 ·空間復(fù)雜性:算法的所需的空間和問題規(guī)模的函數(shù)。記為T(n)。當(dāng)n->∞時(shí)的時(shí)間復(fù)雜 性,被稱之為漸進(jìn)空間復(fù)雜性。 ·最壞情況下的時(shí)間復(fù)雜性和平均情況下的時(shí)間復(fù)雜性。 最壞情況下的時(shí)間復(fù)雜性: 平均情況下的時(shí)間復(fù)雜性:3、大O表示法: ·定義;如果存在著正的常數(shù)c和自然數(shù)n0,當(dāng)n>=n0

時(shí);有f(n)<=Cg(n)成立,則 稱f(n)=O(g(n))。 在算法分析中,如果一個(gè)的算法的時(shí)間復(fù)雜性是O(g(n)),讀作g(n)“級”的 或“階”的。如:線性階的、平方階的、立方階的……1、算法和算法分析 ·例1、設(shè)T(n)=(n+1)2

=n2+2n2+1<=n2+2n2+n2;在n=1時(shí),等式成立,n>1時(shí),<式成立選n0=1,c=4;T(n)<=4n2。所以,T(n)=O(n2) ·例2、設(shè)T(n)=3n3+2n2

選n0=0,c=5;T(n)<=5n3。所以,T(n)=O(n3)

同理:選n0=0,c=5;T(n)<=5n4。所以,T(n)=O(n4)???

注意:符合定義,但在算法分析中是沒有意義的。

在算法分析中,通常所說的找到了時(shí)間復(fù)雜性的級別,是指找到了同樣級別的最 簡單的函數(shù)。 如:307n2、

n2/2、

n2都是同一級別的函數(shù),最簡單的函數(shù)是n2。所以, 307n2、

n2/2、

n2的級別都是O(n2)。f、g同級別:滿足:f=O(g)且g=O(f), ·例3、設(shè)T(n)=3n!=O(2n)注意:f(n)=O(g(n))意味著找到了f(n)的一個(gè)最“緊貼”的上界g(n))?;蛘哒f找到了最低的上界。從算法的時(shí)間復(fù)雜性角度來看,象例2中的O(n4)是沒有意義的。 1、算法和算法分析緊貼漸進(jìn)界:設(shè)存在一個(gè)函數(shù)f(n)=O(g(n)),如果對于每一個(gè)函數(shù)h(n)都使得f(n)=O(h(n)),也使得g(n)=O(h(n)),就說g(n)是f(n)的緊貼漸進(jìn)界。例如:f(n)=3n+5;f(n)=O(n)同樣根據(jù)定義f(n)=O(n2)。但是,我們通常所講的f(n)的緊貼漸進(jìn)界是f(n)=O(n),而不是f(n)=O(n2)。這可用反證法加以證明。反證法:上例中g(shù)(n)=n。假設(shè)g(n)=n不是f(n)=3n+5的緊貼漸進(jìn)界,那么必定存在一個(gè)函數(shù)h(n),使得f(n)=3n+5=O(h(n)),但g(n)!=h(n)。由于3n+5=O(h(n)),那么根據(jù)大O法的定義,必定存在二個(gè)正數(shù)c和n0,使得對于所有的n>=n0,3n+5=<ch(n)。很顯然,對一切n>=0,有n=<3n+5,所以g(n)=<ch(n)。這樣,根據(jù)大O法的定義有g(shù)(n)=O(h(n))。但這是同假設(shè)相矛盾的。因此,f(n)=O(n)是一個(gè)緊貼漸進(jìn)界。關(guān)于更嚴(yán)格的“緊貼漸進(jìn)界”的概念,請看一下的定義。1、算法和算法分析 ·時(shí)間復(fù)雜性分析的注意: 1、時(shí)間復(fù)雜性函數(shù)無時(shí)間單位。 2、上例采用的是均勻時(shí)間耗費(fèi)。以簡單語句的耗費(fèi)時(shí)間為1。 3、如循環(huán)語句,條件:O(1)+THENORELSE后的語句的時(shí)間耗費(fèi)之和。 4、循環(huán)語句,先里后外,逐步求和。4、時(shí)間復(fù)雜性的級別的判斷:級別越低越好。 ·ifLimf(n)/g(n)=c;這里c是常數(shù)。f(n)、g(n)同級別。n->∞ ·ifLimf(n)/g(n)=0;這里c是常數(shù)。f(n)級別低。n->∞ ·ifLimf(n)/g(n)=∞;這里c是常數(shù)。g(n)級別低。n->∞ 如:Limlogn/n=LimLn(n)loge/n =Lim(loge/n)/1 =Limloge/n=0;logn級別低。注意:這里使用了羅彼特的求極限的法則。n->∞n->∞n->∞n->∞O(logn)

和O(n1/2)???1、算法和算法分析5、大Ω表示法: ·定義;如果存在著正的常數(shù)c和自然數(shù)n0,當(dāng)n>=n0

時(shí);有f(n)>=Cg(n)成立,則 稱f(n)=Ω(g(n))。 ·例1、設(shè)T(n)=(n+1)2

=n2+2n2+1>=n2;在n為任何數(shù)時(shí),所以,T(n)=Ω(n2) ·例2、設(shè)T(n)=3n3+2n2T(n)>=3n3。所以,T(n)=Ω(n3) 同理:T(n)>=5n2。所以,T(n)=Ω(n2)???

注意:符合定義,但在算法分析中是沒有意義的。Ω:找盡可能高的下界。6、Θ表示法: ·定義;如果存在著正的常數(shù)c1、c2和自然數(shù)n0,當(dāng)n>=n0

時(shí);有 C1×g(n)<=f(n)<=C2×g(n)成立,則稱f(n)=Θ(g(n))。 ·例1、設(shè)T(n)=(n+1)2=Θ(n2)1、算法和算法分析1。下述兩個(gè)程序段的作用都是將數(shù)組inta〔n〕

的前n-1數(shù)組元素置為和其

數(shù)組元素的下標(biāo)相同的值,且最后一個(gè)數(shù)組元素置為-1,即a〔n-1〕=-1。

兩段程序那個(gè)好一些,那個(gè)差一些(從算法的時(shí)間復(fù)雜性角度考慮)A.

for(i=0;i<n-1;++i)a〔i〕=i;a〔n-1〕=-1;B.

for(i=0;i<n;++i){if(i==n-1)a[n-1〕=-1;elsea〔i〕=i;}解:程序A執(zhí)行的語句次數(shù)為n次,而程序B執(zhí)行的語句次數(shù)為2n次,故而程序B更好一些。時(shí)間省。

2。以下是計(jì)算n!的遞歸程序,求其時(shí)間復(fù)雜性的級別:intf(intn){intm;if(n<=1)m=1;elsem=n*f(n-1);returnm;}1、算法和算法分析解:根據(jù)上述程序的語句執(zhí)行次數(shù)可得: 2 ifn=1 T(n)= T(n-1)+2else解本遞歸式可得:T(n)=2T(n-1)+2=2(2T(n-2)+2)+2=…=O(n)答:本程序的程序時(shí)間復(fù)雜性的級別是線性級的。3、將下列算法的時(shí)間復(fù)雜性的級別,按由低到高的順序排成一列;O(n4),O(1),O(n3),O(n×n1/2),O(logn),O(nlogn),O(n1/2),O(n2),O(2n)解:由低到高的順序?yàn)椋篛(1),O(logn),O(n1/2),O(n*logn),O(n*n1/2),O(n2),O(n3),O(n4),O(2n),1、算法和算法分析4、下面的算法為計(jì)算x的n次冪

的值(y=x^n),求其時(shí)間復(fù)雜性的級別,注意x和n都是正整數(shù):。。scanf(“%d”,&x);scanf(“%d”,&n);y=x;while(n>1)

{y=y*x;n=n-1}

printf(“%d”,y);.解:考察各個(gè)語句的執(zhí)行次數(shù),并把他們相加,可得到該程序的時(shí)間復(fù)雜性級別為: T(n)=1+1+1+n+2n-2+1=O(n)111n2n-211、算法和算法分析111111Logn+2Logn+1Logn+1Logn+2Logn+1Logn+1Logn+1代價(jià)<=3()11、算法和算法分析解:將上一頁的語句執(zhí)行相加次數(shù),可得到總的執(zhí)行次數(shù),故: T(n)=9logn+17=O(logn)算法的工作原理,可用求x55來加以說明: x55=x110111=x32+16+0+4+2+1來加以說明。程序的第一個(gè)while求出>=55的最小的2的正整數(shù)冪64,64/2可得到32,在程序的第二個(gè)while中用到它。在程序的第二個(gè)while中: 55-32=23得到x110111中的冪指數(shù)中的最左位的1 23-16=7得到x110111中的冪指數(shù)中的左起第二位的1 7-8<0得到x110111中的冪指數(shù)中的左起第三位的0 7-4=3得到x110111中的冪指數(shù)中的左起第4位的1 3-2=1得到x110111中的冪指數(shù)中的左起第5位的1 1-1=0得到x110111中的冪指數(shù)中的左起第6三位的1知道了上述求法之后,求x110111就很方便了:1、算法和和算法分析析解:知道道了上述求求法之后,,求x110111就很方便了了:先求x1,1*x=》y再求x11,x11=x10*x1=x10*x1=》y*y*x=》y再求x110,x110=x11*x11=》y*y其余,依次次類推。9、靜夜四無無鄰,荒居居舊業(yè)貧。。。12月-2212月-22Saturday,December24,202210、雨中黃葉葉樹,燈下下白頭人。。。05:52:5805:52:5805:5212/24/20225:52:58AM11、以我獨(dú)沈久久,愧君相見見頻。。12月-2205:52:5805:52Dec-2224-Dec-2212、故人江海別別,幾度隔山山川。。05:52:5805:52:5805:52Saturday,December24,202213、乍見翻翻疑夢,,相悲各各問年。。。12月-2212月-2205:52:5805:52:58December24,202214、他鄉(xiāng)鄉(xiāng)生白白發(fā),,舊國國見青青山。。。24十十二二月20225:52:58上上午05:52:5812月月-2215、比不不了得得就不不比,,得不不到的的就不不要。。。。十二月月225:52上上午午12月月-2205:52December24,202216、行動(dòng)動(dòng)出成成果,,工作作出財(cái)財(cái)富。。。2022/12/245:52:5805:52:5824December202217、做前,能能夠環(huán)視四四周;做時(shí)時(shí),你只能能或者最好好沿著以腳腳為起點(diǎn)的的射線向前前。。5:52:58上上午5:52上上午05:52:5812月-229、沒有失敗敗,只有暫暫時(shí)停止成成功!。12月-2212月-22Saturday,December24,202210、很很多多事事情情努努力力了了未未必必有有結(jié)結(jié)果果,,但但是是不不努努力力卻卻什什么么改改變變也也沒沒有有。。。。05:52:5805:52:5805:5212/24/20225:52:58AM11、成功就是日日復(fù)一日那一一點(diǎn)點(diǎn)小小努努力的積累。。。12月-2205:52:5805:52Dec-2224-Dec-2212、世間成事,,不求其絕對對圓滿,留一一份不足,可可得無限完美美。。05:52:5805:52:5805:52Saturday,December24,202213、不知香積寺寺,數(shù)里入云云峰。。12月-2212月-2205:52:5805:52:58December24,202214、意志志堅(jiān)強(qiáng)強(qiáng)的人人能把把世界界放在在手中中像泥泥塊一一樣任任意揉揉捏。。24十十二二月20225:52:58上上午05:52:5812月月-2215、楚楚塞塞三三湘湘接接,,荊荊門門九九派派通通。。。。。十二二月月225:52上上午午12月月-2205:52December24,202216、少少年年十十五五二二十十時(shí)時(shí),,步步行行奪奪得得胡胡馬馬騎騎。。。。2022/12/245:52:5805:52:5824December202217、空山新新雨后,,天氣晚晚來秋。。。5:52:58上午午5:52上午午05:52:5812月-229、楊柳散散和風(fēng),,青山澹澹吾慮。。。12月-2212月-22Saturday,December24,202210、閱讀一切好好書如同和過過去最杰出的的人談話。05:52:5805:52:5805:5212/24/20225:52:58AM11、越是沒有有本領(lǐng)的就就越加自命命不凡。12月-2205:52:5805:52Dec-2224-Dec-22

溫馨提示

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

最新文檔

評論

0/150

提交評論