


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)時間復(fù)雜度的計(jì)算for(i=1;i<=n;i+)for(j=1;j<=i;j+)for(k=1;k<=j;k+)x+;它的時間復(fù)雜度是多少?自己計(jì)算了一下,數(shù)學(xué)公式忘得差不多了,郁悶;(1)時間復(fù)雜性是什么?時間復(fù)雜性就是原子操作數(shù),最里面的循環(huán)每次執(zhí)行j次,中間循環(huán)每次執(zhí)行ai=1+2+3+.+i=i*(i+1)/2次,所以總的時間復(fù)雜性=a1+.+ai+.+an;a1+.+ai+.+an=1+(1+2)+(1+2+3)+.+(1+2+3+.+n)=1*n+2*(n-1)+3*(n-2)+.+n*(n-(n-1)=n+2n+3n+.+n*n-(2*1+3*2+4*3
2、+.+n*(n-1)=n(1+2+.+n)-(2*(2-1)+3*(3-1)+4*(4-1)+.+n*(n-1)=n(n(n+1)/2-(2*2+3*3+.+n*n)-(2+3+4+.+n)=n(n(n+1)/2-(1*1+2*2+3*3+.+n*n)-(1+2+3+4+.+n)=n(n(n+1)/2-n(n+1)(2n+1)/6+n(n+1)/2所以最后結(jié)果是O(nA3)o【轉(zhuǎn)】時間復(fù)雜度的計(jì)算算法復(fù)雜度是在數(shù)據(jù)結(jié)構(gòu)這門課程的第一章里出現(xiàn)的,因?yàn)樗晕⑸婕暗揭恍?shù)學(xué)問題,所以很多同學(xué)感覺很難,加上這個概念也不是那么具體,更讓許多同學(xué)復(fù)習(xí)起來無從下手,下面我們就這個問題給各位考生進(jìn)行分析。首先
3、了解一下幾個概念。一個是時間復(fù)雜度,一個是漸近時間復(fù)雜度。前者是某個算法的時間耗費(fèi),它是該算法所求解問題規(guī)模n的函數(shù),而后者是指當(dāng)問題規(guī)模趨向無窮大時,該算法時間復(fù)雜度的數(shù)量級。當(dāng)我們評價一個算法的時間性能時,主要標(biāo)準(zhǔn)就是算法的漸近時間復(fù)雜度,因此,在算法分析時,往往對兩者不予區(qū)分,經(jīng)常是將漸近時間復(fù)雜度T(n)=O(f(n)簡稱為時間復(fù)雜度,其中的f(n)般是算法中頻度最大的語句頻度。此外,算法中語句的頻度不僅與問題規(guī)模有關(guān),還與輸入實(shí)例中各元素的取值相關(guān)。但是我們總是考慮在最壞的情況下的時間復(fù)雜度。以保證算法的運(yùn)行時間不會比它更長。常見的時間復(fù)雜度,按數(shù)量級遞增排列依次為:常數(shù)階O(1)、
4、對數(shù)階O(log2n)、線性階O(n)、線性對數(shù)階O(nlog2n)、平方階O(nA2)、立方階O(nP)、k次方階O(nAk)、指數(shù)階0(2切)。下面我們通過例子加以說明,讓大家碰到問題時知道如何去解決。1設(shè)三個函數(shù)f,g,h分別為f(n)=100nA3+nA2+1000,g(n)=25nA3+5000nA2,h(n)=nA1.5+5000nlgn請判斷下列關(guān)系是否成立:(1)f(n)=O(g(n)(2)g(n)=O(f(n)(3)h(n)=O(nA1.5)(4)h(n)=O(nlgn)這里我們復(fù)習(xí)一下漸近時間復(fù)雜度的表示法T(n)=O(f(n),這里的"O"是數(shù)學(xué)符號,
5、它的嚴(yán)格定義是"若T(n)和f(n)是定義在正整數(shù)集合上的兩個函數(shù),則T(n)=O(f(n)表示存在正的常數(shù)C和n0,使得當(dāng)nnO時都滿足OWT(n)<C?f(n>"用容易理解的話說就是這兩個函數(shù)當(dāng)整型自變量n趨向于無窮大時,兩者的比值是一個不等于O的常數(shù)。這么一來,就好計(jì)算了吧。 (1)成立。題中由于兩個函數(shù)的最高次項(xiàng)都是nA3,因此當(dāng)ns時,兩個函數(shù)的比值是一個常數(shù),所以這個關(guān)系式是成立的。 (2)成立。與上同理。 (3)成立。與上同理。 (4)不成立。由于當(dāng)ns時nAl.5比nlgn遞增的快,所以h(n)與nlgn的比值不是常數(shù),故不成立。2、設(shè)n為正整數(shù)
6、,利用大"O"記號,將下列程序段的執(zhí)行時間表示為n的函數(shù)。(1) i=1;k=Owhile(i<n)k=k+1O*i;i+;解答:T(n)=n-1,T(n)=O(n),這個函數(shù)是按線性階遞增的。(2) x=n;/n>1while(x>=(y+1)*(y+1)y+;解答:T(n)=n1/2,T(n)=0(n1/2),最壞的情況是y=0,那么循環(huán)的次數(shù)是n1/2次,這是一個按平方根階遞增的函數(shù)。(3) x=91;y=100;while(y>0)if(x>100)x=x-10;y-;elsex+;解答:T(n)=O(1),這個程序看起來有點(diǎn)嚇人,總共
7、循環(huán)運(yùn)行了1000次,但是我們看到n沒有?沒這段程序的運(yùn)行是和n無關(guān)的,就算它再循環(huán)一萬年,我們也不管他,只是一個常數(shù)階的函數(shù)。1.1 大O表示法上學(xué)的時候就學(xué)習(xí)了大O表示法表示一個算法的效率,也大概明白怎么回事,知道如果沒有循環(huán)的一段程序的復(fù)雜度是常數(shù),一層循環(huán)的復(fù)雜度是0(n),兩層循環(huán)的復(fù)雜度是O(nT)?(我用人2表示平方,同理人3表示立方)。但是一直對于嚴(yán)格的定義和用法稀里糊涂。1.1.1 定義設(shè)一個程序的時間復(fù)雜度用一個函數(shù)T(n)來表示,對于一個查找算法,如下:intseqsearch(inta,constintn,constintx)inti=0;for(;ai!=x&
8、&i<n;i+);if(i=n)return-1;elsereturni;這個程序是將輸入的數(shù)值順序地與數(shù)組中地元素逐個比較,找出與之相等地元素。在第一個元素就找到需要比較一次,在第二個元素找到需要比較2次,在第n個元素找到需要比較n次。對于有n個元素的數(shù)組,如果每個元素被找到的概率相等,那么查找成功的平均比較次數(shù)為:f(n)=1/n(n+(n-1)+(n-2)+.+1)=(n+1)/2=O(n)這就是傳說中的大O函數(shù)的原始定義。1.1.2 用大O來表述要全面分析一個算法,需要考慮算法在最壞和最好的情況下的時間代價,和在平均情況下的時間代價。對于最壞情況,采用大O表示法的一般提法
9、(注意,這里用的是“一般提法”)是:當(dāng)且僅當(dāng)存在正整數(shù)c和n0,使得T(n)<=c*f(n)對于所有的n>=n0都成立。則稱該算法的漸進(jìn)時間復(fù)雜度為T(n)=O(f(n)這個應(yīng)該是高等數(shù)學(xué)里面的第一章極限里面的知識。這里f(n)=(n+1)/2,那么c*f(n)也就是一個一次函數(shù)。對于對數(shù)級,我們用大O記法記為O(log2N)就可以了。1.1.3 加法規(guī)則T(n,m)=T1(n)+T2(n)=O(max(f(n),g(m)1.1.4 乘法規(guī)則T(n,m)=T1(n)*T2(m)=O(f(n)*g(m)1.1.5 一個特例在大0表示法里面有一個特例,如果T1(n)=0(c),c是一個與n無關(guān)的任意常數(shù),T2(n)=O(f(n)則有T(n)=T1(n)*T2(n)=0(c*f(n)=0(f(n).也就是說,在大0表示法中,任何非0正常數(shù)都屬于同一數(shù)量級,記為0(1)。1.1.6 一個經(jīng)驗(yàn)規(guī)則有如下復(fù)雜度關(guān)系c<log2N&l
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際貿(mào)易物流咨詢與管理合同
- 網(wǎng)絡(luò)貸款平臺網(wǎng)店貸款合同簽訂與監(jiān)管協(xié)議
- 小產(chǎn)權(quán)房相鄰權(quán)爭議解決與交易安全保障合同
- 社區(qū)社區(qū)互助型生鮮超市場地租賃與合作經(jīng)營協(xié)議
- 智能化建筑3D打印構(gòu)件設(shè)計(jì)與施工安裝合同
- 影視特效場景搭建與施工環(huán)保評估合同
- 商場特色餐飲檔口綜合運(yùn)營權(quán)承包合同
- 弱視治療方法課件
- 綠色能源原材料保障:新能源汽車用電池級碳酸鋰年度采購合同
- 網(wǎng)絡(luò)直播節(jié)目錄制燈光控臺租賃及節(jié)目制作合同
- (正式版)SHT 3225-2024 石油化工安全儀表系統(tǒng)安全完整性等級設(shè)計(jì)規(guī)范
- 小班語言《水珠寶寶》課件
- 中國流行音樂的發(fā)展史
- 《宮頸妊娠業(yè)務(wù)學(xué)習(xí)》課件
- 《環(huán)糊精包合技術(shù)》課件
- 《講衛(wèi)生勤洗手》課件
- 膈肌麻痹學(xué)習(xí)課件
- 肝臟手術(shù)中的止血技術(shù)與挑戰(zhàn)
- 加油站職業(yè)危害防治計(jì)劃和實(shí)施方案
- 山東省濟(jì)南市槐蔭區(qū)2024屆中考聯(lián)考化學(xué)試題含解析
- (完整版)xx中學(xué)“雙積雙評”積分入團(tuán)實(shí)施方案
評論
0/150
提交評論