




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、算法:是是若干條條指令組組成的有有窮序列列算法的三三個要素素1)數(shù)據(jù)據(jù): 運運算序列列中作為為運算對對象和結(jié)結(jié)果的數(shù)數(shù)據(jù).2)運算算: 運運算序列列中的各各種運算算:賦值值,算術(shù)術(shù)和邏輯輯運算 3)控制制和轉(zhuǎn)移移: 運運算序列列中的控控制和轉(zhuǎn)轉(zhuǎn)移. 四條性質(zhì)質(zhì):輸入入、輸出出、確定定性、有有窮性四條性質(zhì)質(zhì):1)輸入入:有零零個或多多個由外外部提供供的量作作為算法法的輸入入2)輸出出:算法法產(chǎn)生至至少一個個量作為為輸出3)確定定性:組組成算法法的每條條指令是是清晰的的,無歧歧義的。4)有限限性:算算法中每每條指令令的執(zhí)行行次數(shù)是是有限的的,執(zhí)行行每條指指令的時時間也是是有限的的。程序:是是算法用
2、用某種程程序設(shè)計計語言的的具體實實現(xiàn)算法的復(fù)復(fù)雜性:算法運運行所需需要的計計算機資資源的量量時間復(fù)雜雜性(算算法運行行所需要要的計算算機時間間資源的的量)空間復(fù)雜雜性(算算法運行行所需空空間資源源的量)時間復(fù)雜雜性的三三種情況況:最壞壞情況(可操作作性最好好且最優(yōu)優(yōu)實際價價值)、最好情情況、平平均情況況分治法的的設(shè)計思思想:將將一個難難以直接接解決的的大問題題,分割割成一些些規(guī)模較較小的相相同問題題,以便便各個擊擊破,分分而治之之。遞歸:直直接或間間接地調(diào)調(diào)用自身身的算法法。遞歸歸函數(shù):用函數(shù)數(shù)自身給給出定義義的函數(shù)數(shù)。階乘函數(shù)數(shù)可遞歸歸定義為為:遞歸定義義式:int facctorriall
3、(innt nn)if (n = 00) rretuurn 1;retuurn n * faactooriaal(nn-1);Fiboonaccci數(shù)數(shù)列:無無窮數(shù)列列1,11,2,3,55,8,13,21,34,5,可遞遞歸定義義為遞歸定義義式:int fibbonaaccii(intt n)if (n = 11) reeturrn 11;retuurnffiboonaccci(n-11)+ffiboonaccci(n-22);Hanooi塔定定義式:voiddhannoi(intt n, innt aa, iint b, intt c)if (n 0)hanooi (n - 1, a, c
4、, b);movee (aa, bb);hanooi (n - 1, c, b, a);二分搜索索算法的的基本思思想:是是將n個個過元素素分成大大致相同同的兩半半,取aan/2與與x作比比較。合并排序序:用分分治法策策略實現(xiàn)現(xiàn)對n個個元素進(jìn)進(jìn)行排序序的算法法?;颈舅枷胧鞘牵簩⒋判蛟胤殖沙纱笮〈蟠笾孪嗤膬蓚€個子集,分別對對兩個子子集合進(jìn)進(jìn)行排序序,最終終將排好好序的子子集合并并成所要要求的排排好序的的集合。動態(tài)規(guī)劃劃算法基基本思想想(自底底向上、全局最最優(yōu)):講帶帶求解的的問題分分解成若若干個子子問題,先求解解子問題題,然后后從這些些子問題題的解得得到原問問題的解解。與分治法法不同
5、的的是:適適用于動動態(tài)規(guī)劃劃法求解解的問題題,經(jīng)分分解得到到的子問問題往往往不是互互相獨立立的。最優(yōu)子結(jié)結(jié)構(gòu)性質(zhì)質(zhì)(問題題的最優(yōu)優(yōu)解包含含了其子子問題的的最優(yōu)解解)子問題重重疊性質(zhì)質(zhì)(在用用遞歸算算法自頂頂向下求求解此問問題時,每次產(chǎn)產(chǎn)生的子子問題并并不總是是新問題題,有些些子問題題被反復(fù)復(fù)計算多多次)備忘錄方方法(動態(tài)規(guī)規(guī)劃算法法變形):用表表格保存存已解決決的子問問題的答答案,在在下次需需要解此此子問題題時,只只要簡單單地查看看該子問問題的解解答,而而不必重重新計算算。最優(yōu)二叉叉搜索樹樹性質(zhì):存儲于于每個結(jié)結(jié)點中的的元素xx大于其其左子樹樹中任一一結(jié)點所所存儲的的元素,小于其其右子樹樹中任
6、一一結(jié)點所所存儲的的元素。貪心算法法(自頂頂向下、局部最最優(yōu)):通過過一系列列的選擇擇來得到到問題的的解。它它所做的的每一個個選擇都都是當(dāng)前前狀態(tài)下下局部最最好選擇擇。貪心選擇擇性質(zhì)(所求問問題的整整體最優(yōu)優(yōu)解可以以通過一一系列局局部最優(yōu)優(yōu)的選擇擇來達(dá)到到,是貪貪心算法法與動態(tài)態(tài)規(guī)劃算算法的主主要區(qū)別別)最有子結(jié)結(jié)構(gòu)性質(zhì)質(zhì)(一個個問題的的最優(yōu)解解包含其其子問題題的最優(yōu)優(yōu)解)哈夫曼編編碼:是是廣泛用用于數(shù)據(jù)據(jù)文件壓壓縮的十十分有效效的編碼碼方法。最短路徑徑:給定定一個,其中每每條邊的的權(quán)是非非負(fù)實數(shù)數(shù)。一個帶權(quán)有向圖11111100601030105020最小生成成樹性質(zhì)質(zhì):用貪貪心算法法設(shè)計策
7、策略可以以設(shè)計出出構(gòu)造最最小生成成樹的有有效算法法。回溯法(盲人爬爬山、迷迷宮問題題、n后后問題):在解解問題的的解空間間樹中,按深度度優(yōu)先策策略,從從根節(jié)點點出發(fā)搜搜索解空空間樹?;舅枷胂耄簭拈_開始結(jié)點點(根節(jié)節(jié)點)出出發(fā),以以深度有有限方式式搜索整整個解空空間。分枝限界界法基本本思想:以廣度度優(yōu)先或或以最小小耗費(最大效效益)優(yōu)優(yōu)先的方方式搜索索問題的的解空間間樹。分枝限界界法求解解目標(biāo)是是找出滿滿足約束束條件的的一個解解,或是是滿足約約束條件件的解中中找出使使某一目目標(biāo)函數(shù)數(shù)值達(dá)到到極大或或極小的的解,即即在某種種意義下下的最優(yōu)優(yōu)解?;厮莘ㄇ笄蠼饽繕?biāo)標(biāo)是找出出解空間間中滿足足約束條條件
8、的所所有解。批處理作作業(yè)調(diào)度度:給定定n個作作業(yè)的集集合J = (J1,J2,Jnn)。每每個作業(yè)業(yè)Ji都都有兩項項任務(wù)分分別在兩兩臺機器器上完成成。每個個作業(yè)必必須先由由機器11處理,然后再再由機器器2處理理。分支限界界法與回回溯法:分支限限界法與與回溯法法的求解解目標(biāo)不不同,回回溯法的的求解目目標(biāo)是找找出求解解空間中中滿足約約束條件件的所有有解,而而分支限限界法求求解的目目標(biāo)則是是找出滿滿足約束束條件的的一個解解?;厮菟莘ㄒ陨钌疃葍?yōu)先先的方式式搜索解解空間,而分支支限界法法則以廣廣度優(yōu)先先或最小小耗費優(yōu)優(yōu)先的方方式搜索索空間。隨機化算算法基本本特征:對所求求解問題題的同一一實例用用同一隨隨
9、機化算算法求解解兩次可可能得到到完全不不同的效效果。隨機數(shù)在在隨機化化算法設(shè)設(shè)計中扮扮演著十十分重要要的角色色。符號三角角問題:#inccludde #deffinee M 13#deffinee N 13Triaanglle(ccharr AMN)innt ii,j; priintff(n 輸輸入第11行的數(shù)數(shù)據(jù):);for (j=0;jjN;j+)/ 輸入第第1行的的數(shù)據(jù)sccanff(%c,&A0j);for (i=1;iiM;i+)/ A數(shù)組組的第22行以下下清空for (j=0;jjN;j+)AAij= ; i=00;j=0;whille(iiM-1)wwhille(jjN-1)if
10、 (Aiijj=Aiijj+2) / 如如果上一一行的相相鄰兩符符號相同同Aii+1j+1=+;/ 則下一一行的符符號為+elseeAii+1j+1=-;/ 否則下下一行的的符號為為-jj=j+2;i+;jj=i;voidd maain()innt ii,j;charr AMN;Triianggle(A);for (i=0;iiM/2+11;i+)ffor (j=0;jjN-i;jj+)pprinntf(%44c,Aiijj);prrinttf(nn);矩陣相相乘:/ 兩兩矩陣相相乘#inccludde #deffinee M 2#deffinee N 3MatrrixMMulttiplly(
11、iint AMMNN,iint BNNMM,iint CMMMM)innt ii,j,k,ssum;for (i=0;iiM;i+)for (j=0;jjM;j+) suum=00;for (k=0;kkN;k+)summ=suum+AAik*Bkj;CCij=suum;voidd maain()innt AAMN,BNM,CMMMM,ii,j,k;for (i=0;iiM;i+)/ 輸入入6個整數(shù)數(shù)給矩陣陣Afor (j=0;jjN;j+)sscannf(%d,&AAij);for (i=0;iiN;i+)/ 輸入入6個整數(shù)數(shù)給矩陣陣Bfor (j=0;jjM;j+)sscannf(%d,&
12、BBij);MattrixxMulltipply(A, B, C);priintff(n 兩兩矩陣相相乘的的的結(jié)果如如下:nnn);for (i=0;iiM;i+)ffor (j=0;jjM;j+)pprinntf(%44d,Ciijj);prrinttf(nn);二分搜索索算法:是用分分支策略略的典型型例子,需要先先排序。# inncluude # deefinne MMAXLLEN 11typeedeff sttrucctinnt kkey;typpe_eelemmentt;int binnaryy_seearcch(ttypee_ellemeent r,innt kkey)innt ll
13、eftt=1,rigght=MAXXLENN,miiddlle;whille (lefftkkey)rrighht=mmidddle-1;/ 在在右半部部繼續(xù)查查找elseelleftt=miiddlle+11;/ 在右右半部繼繼續(xù)查找找retuurn -1;voidd maain()innt ii,j,keyy;typpe_eelemmentt teemp,rMMAXLLEN+1=0,9,113,115,330,337,555,660,775,880,990,992;for (i=1;iiMAAXLEEN;ii+)/ 對數(shù)組組進(jìn)行排排序for (j=i+11;jrjj.kkey)temmp=
14、rri;rii=rrj;rjj=ttempp;for (i=1;ii=MMAXLLEN;i+)prrinttf(%3dd,rri.keey);priintff(nnn 輸入入欲查找找的數(shù)據(jù)據(jù):);scaanf(%dd,&keyy);i=bbinaary_seaarchh(r,keyy);if (i=-1)prrinttf(n 已經(jīng)查查找完,尚未找找到該數(shù)數(shù)!nnn);elseeprrinttf(nn 已已找到,其序號號是:%d nnn,ii);快速排排序:#inccludde #inccludde #deffinee MAAXLEEN 110int parrtittionn(innt rr,i
15、ntt s,intt t)innt ii,j,rp;i=ss;j=tt;/一一趟快速速排序,將基準(zhǔn)準(zhǔn)記錄移移到正確確位置rp=rss;/基基準(zhǔn)記錄錄暫存 rp 中whille(iij)/從從序列的的兩端交交替向中中間掃描描wwhille(ii=rp)/掃掃描比基基準(zhǔn)記錄錄小的位位置jj-;ri=rjj;/將將比基準(zhǔn)準(zhǔn)記錄小小的數(shù)據(jù)據(jù)移到低低端whille(iij & rii=rp)/掃掃描比基基準(zhǔn)記錄錄大的位位置ii+;rj=rii;/將將比基準(zhǔn)準(zhǔn)記錄大大的數(shù)據(jù)據(jù)移到高高端rii=rrp;/基基準(zhǔn)記錄錄到位retuurn i;voidd QuuickkSorrt(iint r,innt ss,
16、innt tt)/快快速排序序遞歸算算法innt kk;if (stt)/長長度達(dá)于于1kk=paartiitioon(rr,s,t);/調(diào)調(diào)用一趟趟快速排排序算法法將rs.rt一一分為二二QuuickkSorrt(rr,s,k-11);/對對低端子子序列遞遞歸排序序,k是是支點位位置QuuickkSorrt(rr,k+1,tt);/對對高端子子序列遞遞歸排序序voidd maain()innt ii;int rMMAXLLEN;priintff(n 請請輸入%d個整整數(shù):,MAAXLEEN);for (i=0;iiMAAXLEEN;ii+)sccanff(%d,&ri);QuiickSSor
17、tt(r,0,MMAXLLEN-1);priintff(n 快快速排序序的結(jié)果果如下:nn);for(i=00;iMAXXLENN;i+)prrinttf(%3dd,rri);priintff(nnn);循環(huán)賽日日程表:#inccludde #deffinee MAAXLEEN 88 voidd maain()innt ii,j;int xMMAXLLEN+1MAXXLENN+1=00;/ 數(shù)組清清零for (i=1;ii=MMAXLLEN;i+) / 產(chǎn)產(chǎn)生第11列數(shù)據(jù)據(jù)xi1=i;for (i=1;ii=MMAXLLEN;i+) / 產(chǎn)產(chǎn)生第22列數(shù)據(jù)據(jù)if (i % 2 !=00)xxi
18、2=xi+1111; / 產(chǎn)產(chǎn)生奇數(shù)數(shù)行的第第2列的的數(shù)據(jù)elseexxi2=xi-1111; / 產(chǎn)產(chǎn)生偶數(shù)數(shù)行的第第2列的的數(shù)據(jù)for(i=11;i=8;i+) / 產(chǎn)產(chǎn)生左半半部表中中的右半半部分for (j=1;jj=22;j+)if (i=1 | ii=22 | i=5 | i=6)xii+2j+2=xiijj;elseexii-2j+2=xiijj;for(i=11;i=8;i+)/ 產(chǎn)生生右半部部表的數(shù)數(shù)據(jù)for (j=1;jj=44;j+) if (i=4)xii+4j+4=xiijj;elseexii-4j+4=xiijj;priintff(n 循循環(huán)賽日日程表如如下:nnn
19、);for (i=1;ii=MMAXLLEN;i+) / 輸出該該表ffor (j=1;jj=MMAXLLEN;j+)pprinntf(%66d,xiijj);prrinttf(nn);最大公約約數(shù):int gcdd(innt mm,innt nn) int r;whille(nn!=00) r = mm % n;m = nn;n = rr;retuurn m; 最小公倍倍數(shù):int gcmm(innt mm,innt nn)innt ii,k,f;if (mnn) / 交交換m與與nii=m;m=n;n=i;f=11; if (m%nn=00)ff=f*m;retuurn f;i=22;k=
20、(intt)(ssqrtt(n);/ 求求n的平平方根取取整數(shù)whille(ii=kk) iif (m%i=0)&(nn%i=0)f=ff*i; mm=m/i;nn=n/i;ii=2;elsee ii+;f=ff*m*n;retuurn f; 冒泡排序序:/ 交換排排序中的的冒泡排排序法# inncluude # deefinne LLENGGTH 10voidd maain() iint i,jj,k,temmp;int rLLENGGTH;for (i=0;iiLEENGTTH;ii+)sccanff(%d,&ri);/輸入110個整整數(shù)for (i=1;ii=LLENGGTH-1;ii+
21、)/共共進(jìn)行 LENNGTHH-1 趟排序序kk=0;for (j=0;jjrrj+1)/若若相鄰兩兩記錄的的關(guān)鍵字字逆序, k+; / 則則互相交交換 temmp=rrj; rjj=rrj+1; rjj+1=teemp; if (k=0)/ 說明該該趟沒有有發(fā)生交交換breaak; / 跳出該該層循環(huán)環(huán)for(i=00;iLENNGTHH;i+)prrinttf(%3dd,rri); / 輸出排排序結(jié)果果素數(shù)判斷斷:int nummberr; / nnumbber 為全局局變量booll prrimee(innt xx)innt ii,k;k=ssqrtt(x);for (i=2;ii=kk
22、;i+) / 如果果X能被被 2 - ssqrtt(x) 中的的任何一一個整數(shù)數(shù)整除,if (x%ii=00)/則X不不是素數(shù)數(shù),因此此應(yīng)跳出出該層循循環(huán)retuurn fallse;retrrun truue;/ 表示示X未被被 2 - ssqrtt(x) 中的的任何一一個整數(shù)數(shù)整除素數(shù)因子子分解:#inccludde #inccludde #deffinee N 1000voidd maain()innt ii,j,k,xx,y,sieeve_ANN+1,siievee_BN+11,ssievve_CCN+1;scaanf(%dd,&x);/ 輸入一一個1000以內(nèi)內(nèi)的非負(fù)負(fù)整數(shù)y=xx; if(xx0)retturnn;/輸入入整數(shù)是是負(fù)數(shù)for(i=22;i=x;i+)/ 設(shè)置ssievve_AA篩中數(shù)數(shù)據(jù) 22 Xsiievee_Ai=i;k=(intt)sqqrt(x);for(i=22;i=k;i+)jj=i*i;whille(jj=xx)if (sieeve_Ajj!=0)/定位 i 的的倍數(shù)處處sieeve_Ajj=00;/篩
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 錨地維護(hù)合同協(xié)議書模板
- 新零售對傳統(tǒng)零售業(yè)的沖擊
- 項目投資合同協(xié)議書模板
- 數(shù)化制作創(chuàng)業(yè)計劃書
- 老年人攝影營銷策劃方案
- 2025年社區(qū)團(tuán)購行業(yè)調(diào)研分析報告
- 出租快艇合同協(xié)議書模板
- 海洋公園營銷策劃方案舉例
- 欠款房屋抵押合同協(xié)議書
- 加盟瑞幸商業(yè)計劃書
- ZJUTTOP100理工類學(xué)術(shù)期刊目錄(2018年版)
- F0值計算公式自動
- 道路交通事故現(xiàn)場勘查課件
- 門店電表記錄表
- 心理學(xué)在船舶安全管理中的應(yīng)用
- JJF(鄂) 90-2021 電子輥道秤校準(zhǔn)規(guī)范(高清版)
- 超星爾雅學(xué)習(xí)通《今天的日本》章節(jié)測試含答案
- 組態(tài)王雙機熱備
- 餐飲量化分級
- 三一重工SCC2000履帶吊履帶式起重機技術(shù)參數(shù)
- [精品]GA38-2004《銀行營業(yè)場所風(fēng)險等級和防護(hù)級別的規(guī)定》
評論
0/150
提交評論