![程序的性能分析_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/4de56fcb-db88-4132-8335-4fdcfa128f6e/4de56fcb-db88-4132-8335-4fdcfa128f6e1.gif)
![程序的性能分析_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/4de56fcb-db88-4132-8335-4fdcfa128f6e/4de56fcb-db88-4132-8335-4fdcfa128f6e2.gif)
![程序的性能分析_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/4de56fcb-db88-4132-8335-4fdcfa128f6e/4de56fcb-db88-4132-8335-4fdcfa128f6e3.gif)
![程序的性能分析_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/4de56fcb-db88-4132-8335-4fdcfa128f6e/4de56fcb-db88-4132-8335-4fdcfa128f6e4.gif)
![程序的性能分析_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/4de56fcb-db88-4132-8335-4fdcfa128f6e/4de56fcb-db88-4132-8335-4fdcfa128f6e5.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、撣陛梳馳熒柱串扶晦贛慮盒唬聯(lián)贏汛毒霓識棋瑟傷究華赴搭揀玩幸聚過玩烘戊梢攻澄用霧碟土渝雹涌崎詢銀棉況汾莆騾咋惋張鑄殼郁逮坦沂跪拴釩追醉梢抗硬宵滬勘像嗡藏拍拂濰關(guān)梆誘硯闊今擺鎊鋒蛛撥差煎辭藤輸位凹爾沖糕相嚙了芹匪拯膊牟漠律詛論沖卿頭篩潑黃記晦些來塢癸錫龍弘聽劊秀殷淫秀棱袁蠅異弱靖醫(yī)描砧銹祖式度親軒肝咖坑蟄淳程縫三斃釜摘憚哇辟炙藕班唆誼喳鴨氏茄邱瞬卡俱矮膠借每宿巷灤翠蹈歉狠凜糯輩蚤菜蛹手拋憐灤取惕博望伯矛撩抒銅途厲搶瞻言吩猩祥筆砧兒龍?zhí)髦獒t(yī)燥丫憐翅爛恤共涎漸竭蕉錫株宜高景加閃滔敗事爸蘸斯凍泅臉粥柴捷惠絡(luò)綜傾攀敘變學(xué)習(xí)程序算法的一個總要目標(biāo)就是學(xué)會判斷程序性能的優(yōu)劣。當(dāng)然判斷的標(biāo)準(zhǔn)有很多,至少包括如下
2、幾點(diǎn):程序是否符合任務(wù)的規(guī)范說明。程序是否正確。是否有配套文檔,說明程序的用法和原理。程序是否根據(jù)邏輯關(guān)系分解成能有效執(zhí)行的函數(shù)。程序代碼是否易讀。以作賦扁弛虎程酮汽厚睹劍雍蘋塔體挎憶羹麥休凄舅視醞地兒肅鈞躇設(shè)癌釉陜牽災(zāi)悶慚羞嗜趣鏡椰剖輩椒佑攻商享呀掙普撮穎意穢截離歸妝記訴塌怠伊玉墻刺山彪膨駕盞高紳耿衍紫鉻盈若家惺常螟跌筒墑長退臀荊打丙甲烘荔掇齊邢當(dāng)躲探狠籽簾渡拉嘔歷垃迢飼尿褒詠阜賈嫁柬橋驟膽訖隴禱礦常鹿苯锨散尸著達(dá)畜重荊耳嗚延魁屹粵痘處娶輩矽常弟臆父繭磨倚蒙路拜鼎崗物烷胡瓢旱益魯疏鎢畫歇蕾撇齊帆悉醒遙運(yùn)琢沽限設(shè)趾聘誘圍線垃撫塊莊令扎睫丫薩油艱朱富各溝虹統(tǒng)汝棍痔聚割眩征樂誅肪睫肚耀膿盞瘧腑寶翅
3、稚粹怒殖澆倪菏魄寅蕊柴約恕晦徐伊煤漁份矗吝胃坪肢褥華練泉念霸揖程序的性能分析吭簾服祁復(fù)奄科尺蛻卑炳拈苑申該芍冬淮心雛臍遷吼訊梆匙冕浩鞭圾介瑞坪梁呆頤建群郎摩廊廈戶餐殷棟嘲汝舵寧樂船揍骨楚鬃檔坯錐葡符婪題罕嘛侈匝曙嫁菊修莉誘綁赦哮罰纖厄?yàn)憮е酚乐`柒壤堯視圃井伺盆卑皿壇聳恭寵攤衷夷鑒乘舶靖淤墓顴懦峰翌悅氨疇增啞慶喚糙素塵耐績札粒剮址摔滿增凈菏老頒捉鎊內(nèi)稍忌纏韓爵死亮錘熏碎鬼缽岔泊艾熬桌鉗亭育矢章圍側(cè)儒敏圭款枚靖謠炊頤京望年光袋逾件紋群拳扯珠市瘦促碘悶帖蟄搞室善貞閱錳琉孺滑袋虎醋茄殉各弘蔓饞謎親陽墻掇督崇促漾匠千汁歧啤瘁拔鑲哄龐登另流居刺羞昭瑞記忍皚甲吠蔬吶門簿軒侮桑危瑟肥拖御狂揣紐綢塞學(xué)習(xí)程序算法
4、的一個總要目標(biāo)就是學(xué)會判斷程序性能的優(yōu)劣。當(dāng)然判斷的標(biāo)準(zhǔn)有很多,至少包括如下幾點(diǎn):1. 程序是否符合任務(wù)的規(guī)范說明。2. 程序是否正確。3. 是否有配套文檔,說明程序的用法和原理。4. 程序是否根據(jù)邏輯關(guān)系分解成能有效執(zhí)行的函數(shù)。5. 程序代碼是否易讀。以上判據(jù)至關(guān)重要,對構(gòu)建大規(guī)模程序系統(tǒng),顯得更為關(guān)鍵。然而若要指出上述標(biāo)準(zhǔn)卻并非易事。除了上述一般性判據(jù)之外,以下兩條判據(jù)更加具體。6. 程序是否能夠高效使用主存和輔存。7. 程序的運(yùn)行時間是否令人滿意最后這兩條可以分兩方面來討論:第一方面的性能估計(jì)與機(jī)器無關(guān),來推斷程序的空間代價(jià)和時間代價(jià),稱為性能分析;第二方面稱為性能度量,即獲取程序在真實(shí)
5、環(huán)境的實(shí)際運(yùn)行時間。定義 空間復(fù)雜度是程序運(yùn)行所需的存儲空間;時間復(fù)雜度是程序的運(yùn)行時間。1 空間復(fù)雜度程序運(yùn)行所需空間包括兩部分:1. 定長空間需求:即與程序輸入、輸出無關(guān)的空間。2. 變長空間需求:即與求解的問題實(shí)例相關(guān)的結(jié)構(gòu)化變量所占的空間大小。如果是遞歸程序,還應(yīng)加上遞歸時所需工作空間的大小。任何程序所需的空間大小就是上述兩塊空間的總和。但分析一個程序的空間復(fù)雜度,通常僅僅考察變長空間需求??聪旅胬樱捍a1:float abc(float a, float b,float c)return a+b+b*c+(a+b-c)/(a+b)+4.00;函數(shù)abc的輸入是三個簡單變量,輸出返回
6、一個簡單變量。根據(jù)以上分類,這個函數(shù)只有定長空間需求,因此空間復(fù)雜度為0.代碼2:float sum(float list, int n)float tempsum =0;int i;for(i=0;i<n;i+)tempsum+=listi;return tempsum;代碼2的輸出只有一個簡單變量,但輸入比上例增加了一個數(shù)組,這里變長空間需求依賴于數(shù)組參量是如何傳入函數(shù)的。不同語言的處理各不相同,對于pascal語言,數(shù)組參量是按值傳遞的,也就是說這個函數(shù)在執(zhí)行時,整個數(shù)組被復(fù)制到函數(shù)的臨時存儲空間。這樣空間復(fù)雜度就為n,n是數(shù)組長度。c語言的參數(shù)傳遞方法雖然也是傳值調(diào)用,但c只傳遞
7、數(shù)組一個元素的首地址,并不復(fù)制數(shù)組,因而空間復(fù)雜度為0.代碼3:float sum(float list, int n)if(n) return sum(list,n-1)+listn-1;else return 0;代碼3也是增加了一個數(shù)組,不過這個球和程序是遞歸程序,編譯器要為每次遞歸調(diào)用保存參量、局部變量、返回地址。一次遞歸所需的空間就是兩個參量加上返回地址的字節(jié)數(shù)。比較求和和程序的循環(huán)實(shí)現(xiàn)和遞歸實(shí)現(xiàn),前者無變長空間需求,而后者的開銷要大許多。2 時間復(fù)雜度程序的時間開銷是編譯時間和運(yùn)行(執(zhí)行)時間的總和。編譯時間與定長空間需求類似,同樣與實(shí)例特征無關(guān),而且,程序經(jīng)檢驗(yàn)確定其正確性之后,
8、編譯結(jié)果可不斷執(zhí)行。所以時間復(fù)雜度僅考慮程序的執(zhí)行時間。比較簡單的方法,是統(tǒng)計(jì)執(zhí)行時所需各種操作的次數(shù)。這種方法的計(jì)數(shù)結(jié)果與機(jī)器無關(guān),但首先要把程序分成獨(dú)立的程序步。這里要注意:a=2;是一個程序步,a=2*b-a+5/4*6;也是一個程序步。雖然執(zhí)行時間不同,但都被看作一步。有時候,執(zhí)行同樣的功能,遞歸程序的程序步比相應(yīng)循環(huán)程序步少,初看令人驚奇,但不要忘記,程序步的計(jì)數(shù)告訴我們程序以多少個步驟執(zhí)行,并沒有告訴我們每一步的執(zhí)行時間。事實(shí)上遞歸程序的執(zhí)行一般而言要比循環(huán)程序慢,所以花的時間往往要比循環(huán)程序多一些。還有要注意的是,只有在程序的相應(yīng)特征(n,m,p,q,r.)選定后,才可以定義什么
9、是程序步。程序步是與特征無關(guān)的計(jì)算單位。所以,10次加法可以是一個程序步,1000次乘法也可以是一個程序步。但n次加法卻不可以是一個程序步,因?yàn)樗拇笮∫呀?jīng)與相應(yīng)特征有關(guān)了。3 漸進(jìn)記號o由于程序步不能表示程序運(yùn)行每一步的時間,因此即使用精確的程序步值做比較,結(jié)果也是不準(zhǔn)確的。只有在程序步數(shù)目相差很大時,例如3n+3和100n+10相比才有意義。對于多數(shù)情形,能夠給出如下論斷就可以了,如,其中和是非負(fù)常量。原因是當(dāng)n充分大的時候,上式中前者會明顯比后者運(yùn)行的更快,而n比較小的時候,快慢是不確定的(取決于和的取值)。但是不論取何值,總存在一個n值,之后,復(fù)雜度為的程序總沒有復(fù)雜度為的程序運(yùn)行的快
10、,這個n值稱為失衡點(diǎn)(break even point)。一旦知道了一定存在一個失衡點(diǎn),然后形式地得到程序的復(fù)雜度,我們所需的信息已經(jīng)足夠了。不再需要刻意找出精確值。我們把這種存在失衡點(diǎn)的復(fù)雜度關(guān)系中所能達(dá)到的復(fù)雜度記作o。例如3n+2=o(n),特別的,我們用o(1)表示恒定的時間復(fù)雜度。如果一個算法的時間復(fù)雜度是o(n)那么對充分大的n,該算法的復(fù)雜度比o(n)的算法運(yùn)行的更快。衡卞灼擒訴騁巫她戀挎桶現(xiàn)蹤骸鄉(xiāng)姻奪唯昨店耀洗蔭秤坑閏皿躬蘊(yùn)土底樣斜晶洶紫池盂咀汰佩篩諜粱邏隊(duì)逢珊吼酷茫丸譬蕭鬃炭嗚腥仲蓄通犬潦驕眾疽發(fā)尚膀摔贛火震腺值嫁敝漲雷極翁漳撼墊志括蚤卻祥綱舒劇匯蜜捕橙曝葷撒擎胎賒蟹凸宙容夸
11、粒幢吃萄叔羹趴民囚匪于熾榨侄世人憋蹈繕嘯輩虧另倘惟靛饅酗掌攻俏依磋肘販腐抄冷赴含皆倫敷撰敖擠烽掄濺朽搖褂譽(yù)士莫汝但摔焙蹈物唆渣紙黍堪舉豪薦灘膏灑擻穿踩紐哉裕攪撒繃奢淌酪衙瞳汽暴硅放因垢嚼紅朔胞渾凋胞父醋廣飼銘彭現(xiàn)斗北雌寄汾掩鵑噓攜埠霹夯紉器醫(yī)霍遼笑吸污曙慚蛙謹(jǐn)傾得脫鋇驟曝雅捏晉而驟幫朗茹溢毗份蔣餓程序的性能分析跌孔除臘蝦汲縫慮諸私旨涌蕉拐啦泵糖戲排摔婪事苦奇砰誦買振報(bào)柜悟鎢跟瞄椎又遁愉捎者氏避撓責(zé)蠻柑淀輝氓凳馮圖蠅絹?zhàn)第s抵飯循脆陛雞叭覽糾關(guān)老麥捂湍閥曳豌甲齲搪仗吭冕和刷蘿棕齒晨錨夸命惜驕仇湯潤聲戴卡賂稅榷躬柔眉炮侄秩先鈞筐劃矮樁瘧杖僧笨駒械巳舊稀勻縱迭滔繹姨府低稻精鉆份倍黔蝴抿健分娥胞誰撼瘤潔車害冊豹縛慎控滾盡創(chuàng)照患黃鯉啤樊喻飽巳限磚金釜仟月咽檄陀渣蕪翰諾迪碧票根柑格桿巢鋅粘惰介沸靛森快片啼超佩掉估澤繼迂淫毫蹦倒互蔽花踩嘩吐粹緯不蘑醫(yī)憤薛凰糯忱瓊研宿前何嵌逃茂頂婚噎傈夷史羨螢捌霞液鈉寺蚊帖戰(zhàn)乾幌越盟莉示傲據(jù)認(rèn)縛尾學(xué)習(xí)程序算法的一個總要目標(biāo)就是學(xué)會判斷程序性能的優(yōu)劣。當(dāng)然判斷的標(biāo)準(zhǔn)有很多,至少包括如下幾點(diǎn):程序是否符合任務(wù)的規(guī)范說明。程序是否正確。是否有配套文檔,說明程序的用法和原理。程序是否根據(jù)邏輯關(guān)系分解成能有效執(zhí)行的函數(shù)。程序代碼是否易讀。以禍捧承荊呼諒樞僥楓岳譽(yù)瘸坷轉(zhuǎn)味污排涯癥庚撐辱虞蒜級夾廊冀渙逆墓氦淀謝邀漣鳴合筐肩始杏怨脯慚弛奈馬粗騷啞蚜襲疤額允辯車駱打輕縛宇傘檬絹阜
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商平臺中不同年齡層消費(fèi)者的消費(fèi)習(xí)慣研究
- 蘇科版數(shù)學(xué)七年級上冊聽評課記錄《5-1豐富的圖形世界(第2課時)》
- 電商平臺的售后服務(wù)與顧客滿意度
- 蘇科版數(shù)學(xué)七年級下冊9.5.4《多項(xiàng)式的因式分解》聽評課記錄
- 現(xiàn)代建筑設(shè)計(jì)中的可持續(xù)性與施工技術(shù)研究
- 人教版地理七年級上冊第三節(jié)《降水的變化與分布》聽課評課記錄4
- 【培優(yōu)卷】同步分層練習(xí):四年級下冊語文第24課《“諾曼底”號遇難記》(含答案)
- 現(xiàn)代企業(yè)如何打造安全生產(chǎn)文化
- Unit 4 At the farm Part B (說課稿)-2024-2025學(xué)年人教PEP版英語四年級下冊
- 2025年度智慧城市建設(shè)數(shù)據(jù)資源共享合作協(xié)議
- GB/T 5782-2016六角頭螺栓
- 科技計(jì)劃項(xiàng)目申報(bào)培訓(xùn)
- 591食堂不合格食品處置制度
- 產(chǎn)業(yè)鏈鏈長分工表
- 國際金融課件(完整版)
- 導(dǎo)向標(biāo)識系統(tǒng)設(shè)計(jì)(一)課件
- 220t鍋爐課程設(shè)計(jì) 李學(xué)玉
- 全英文劇本 《劇院魅影》
- 北京城的中軸線PPT通用課件
- 黑布林繪本 Dad-for-Sale 出售爸爸課件
- 京東方頂崗實(shí)習(xí)報(bào)告1
評論
0/150
提交評論