版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上暨南大學(xué)本科實(shí)驗(yàn)報(bào)告專用紙課程名稱 算法設(shè)計(jì)與分析 成績(jī)?cè)u(píng)定 實(shí)驗(yàn)項(xiàng)目名稱 分治策略與動(dòng)態(tài)規(guī)劃 指導(dǎo)教師 李展 實(shí)驗(yàn)項(xiàng)目編號(hào) 01 實(shí)驗(yàn)項(xiàng)目類型 設(shè)計(jì)類 實(shí)驗(yàn)地點(diǎn) 南海樓6樓學(xué)生姓名 陳奕豪 學(xué)號(hào) 學(xué)院 信息科學(xué)技術(shù)學(xué)院 系 計(jì)算機(jī)系 專業(yè) 軟件工程 實(shí)驗(yàn)時(shí)間 年 月 日 一、 實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)涉及用分治策略和動(dòng)態(tài)規(guī)劃算法來(lái)求解優(yōu)化組合問題。通過上機(jī)實(shí)驗(yàn)使學(xué)員學(xué)會(huì)程序的錄入和調(diào)試;通過實(shí)驗(yàn)結(jié)果的比較,使學(xué)員了解兩種算法的主要特點(diǎn)。二、 實(shí)驗(yàn)內(nèi)容:第二章實(shí)驗(yàn)題必做算法分析題1: 線性時(shí)間選擇問題l 問題描述給定線性序集中n個(gè)元素和一個(gè)整數(shù)k, 1kn, 要求找出這n個(gè)元
2、素中第k小的元素l 主要思路及步驟1. 把a(bǔ)數(shù)組中元素分為5個(gè)一組,選每組中位數(shù)后分別將他們移向數(shù)組頭,再用同樣的方法選取中位數(shù)的中位數(shù)x,然后按x把a(bǔ)數(shù)組分為兩個(gè)劃分,重復(fù)上述過程直至劃分中元素個(gè)數(shù)少于75,返回要求值l 算法描述Type Select(Type a, int p, int r, int k) if (r-p75) 用某個(gè)簡(jiǎn)單排序算法對(duì)數(shù)組ap:r排序; return ap+k-1; ; for ( int i = 0; i=(r-p-4)/5; i+ ) 將ap+5*i至ap+5*i+4的第3小元素 與ap+i交換位置; /找中位數(shù)的中位數(shù),r-p-4即上面所說(shuō)的n-5 T
3、ype x = Select(a, p, p+(r-p-4)/5, (r-p+6)/10); int i=Partition(a,p,r, x), j=i-p+1; if (k=j) return Select(a,p,i,k); else return Select(a,i+1,r,k-j);l 輸入和輸出自行設(shè)計(jì)數(shù)組a的元素的值,要求元素個(gè)數(shù)不少于80個(gè),并實(shí)現(xiàn)以下輸出:(1)輸出數(shù)組a中下標(biāo)范圍從p到p+(r-p-4)/5的元素;(2)輸出x的值,判斷x是否為數(shù)組a中下標(biāo)范圍從p到p+(r-p-4)/5的擬中位數(shù);(3)輸出數(shù)組a中下標(biāo)范圍從p到r的元素,驗(yàn)證其是否為以x為基準(zhǔn)元素的劃分
4、。源代碼::#include #include #include void Swap(int *i,int *j)int a;a=*i;*i=*j;*j=a;/交換函數(shù)int Partition(int *a, int p, int r)int i=p,j=r+1;int x=ap;while(true)while(a+ix & ix);if(i=j)break;Swap(&ai,&aj);ap=aj;aj=x;return j;void QuickSort(int *a, int p, int r)if(pr)int q=Partition(a,p,r);QuickSort(a,p,q-1)
5、;QuickSort(a,q+1,r);/快速排列int Partition_S(int *a, int p, int r, int x,int *count)int i,j=p,temp,z=0;for(i=0;i=r;i+)if(ai!=x)z+;elsetemp=az;az=aj;aj=temp;j+;z+;(*count)+;i=p,j=r+1;while(true)while(a+ix & ix);if(i=j)break;Swap(&ai,&aj);ap=aj;aj=x;return j;/劃分函數(shù)int Select(int *a, int p, int r, int k)if(
6、r-p75)QuickSort(a,p,r);return ap+k-1;int i,j,t;for(i=0;i=(r-p-4)/5;i+)QuickSort(a,p+5*i,p+5*i+4);int temp=ap+i;ap+i=ap+i*5+2;ap+i*5+2=temp;printf(數(shù)組a下標(biāo)p到p+(r-p-4)/5的元素);for(i=p;i=p+(r-p-4)/5;i+)printf(%d ,ai);/輸出(1)int x=Select(a,p,p+(r-p-4)/5,(r-p+6)/10);printf(n擬中位數(shù):%dn,x);/輸出(2)int count=0;i=Part
7、ition_S(a,p,r,x,&count);printf(以%d為基準(zhǔn)的劃分:,x);for(t=p;t=r;t+)printf(%d ,at);/輸出(3)printf(nn);j=i-p;if(k=1 & jk & k=j+count-1)return ai;elsereturn Select(a,i+count,r,k-j-count);int main()int i,n,j;int a80=1059,1285,50,32, 788, 651, 106, 42, 67, 7, 1287, 395, 412, 132, 213, 398, 1750, 406, 1834, 703, 2
8、10, 1102, 1210, 1092, 161, 1736, 578, 965, 1037, 881, 1754, 813, 268, 558, 1961, 1271, 776, 146, 544, 1921, 514, 1049, 636, 1275, 1415, 1294, 929, 765, 472, 187, 1575, 194, 1342, 1309, 1026, 1836, 502, 1412, 289, 161, 137, 1943, 367, 1163, 1047, 896, 132, 1375, 428, 655, 94, 111, 636, 103, 1018, 109
9、9, 479, 465, 346, 1720;printf(輸入k的值:);scanf(%d,&n);int z=n;i=Select(a,0,79,n);QuickSort(a,0,79);/排序,方便查看結(jié)果for(j=0;j80;j+)printf( %d,aj);printf(n);printf(第%d小的數(shù)是%dn,z, i);return 0;實(shí)驗(yàn)截圖:l 實(shí)驗(yàn)總結(jié)基本熟悉線性時(shí)間選擇算法的結(jié)構(gòu)第三章實(shí)驗(yàn)題選做算法實(shí)現(xiàn)題2: 二維0-1背包問題(P79 3-4)l 問題描述l 分析與解答要求:給出最優(yōu)值的遞歸關(guān)系l 算法描述l 輸入和輸出要求:物品不少于10個(gè),輸出最優(yōu)值數(shù)組的全部
10、值和最后的最優(yōu)解算法實(shí)現(xiàn):#include int m100100100;int min(int i,int j)return ij?i:j;void Knapsack(int *v,int *w,int c,int *b,int d,int n)int min(int i,int j);int max(int i,int j); int i,j,k; int jMax=min(wn-1,c);/可選物品只有nint kMax=min(bn-1,d);/同上 for(j=0;j=jMax;j+) for(k=kMax;k=d;k+) mnjk=0;/可選物品只有n且重量不足 for(j=jMa
11、x;j=c;j+) for(k=0;k=kMax;k+) mnjk=0;/可選物品只有n且體積不足 for(j=wn;j=c;j+) for(k=bn;k1;i-) jMax=min(wi-1,c); kMax=min(bi-1,d); for(j=0;j=jMax;j+) for(k=0;k=d;k+) mijk=mi+1jk; for(j=0;j=c;j+) for(k=0;k=kMax;k+) mijk=mi+1jk; for(j=wi;j=c;j+) for(k=bi;k=w1&d=b1) m1cd=max(m1cd,m2c-w1d-b1+v1);void Traceback(int *w,int c,int *b,int d,int n,int *x) for(int i=1;in;i+) if(micd=mi+1cd) xi=0; else xi=1; c-=wi; d-=bi; xn=(mncd) ? 1:0;int main() int n,c,d,i; printf(請(qǐng)輸入物品個(gè)數(shù)、背包容量、背包容積:); scanf(%d %d %d,&n,&c,&d); int v100,w100,b100,x100; printf(請(qǐng)輸入每個(gè)物品的價(jià)值、重量、體積:n); for(i=1;i=n;i+)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《護(hù)理康復(fù)評(píng)定上》課件
- 2021屆天津市楊村一中、寶坻一中等四校高一下學(xué)期期末聯(lián)考化學(xué)試題
- 《綜合醫(yī)院評(píng)審概述》課件
- 小學(xué)四年級(jí)數(shù)學(xué)小數(shù)加減法計(jì)算題練習(xí)卷
- 《汽車車型解析》課件
- 電焊管道焊接技術(shù)
- 美食烹飪行業(yè)調(diào)味技巧培訓(xùn)實(shí)踐
- 物流行業(yè)倉(cāng)儲(chǔ)管理心得總結(jié)
- 電影院服務(wù)員的服務(wù)技巧
- 印刷行業(yè)采購(gòu)工作心得
- 2023-2024學(xué)年廣東省廣州市黃埔區(qū)六年級(jí)(上)期末數(shù)學(xué)試卷(A卷)
- 高職院校專業(yè)教師數(shù)字素養(yǎng)架構(gòu)與提升路徑
- 2024年北京市學(xué)業(yè)水平合格性地理試卷(第一次)
- 黑龍江哈爾濱六中2025屆高三第六次模擬考試數(shù)學(xué)試卷含解析
- GB/T 36547-2024電化學(xué)儲(chǔ)能電站接入電網(wǎng)技術(shù)規(guī)定
- 會(huì)議記錄培訓(xùn)教材課件幻燈片
- 售后服務(wù)人員培訓(xùn)資料課件
- 2024-2030年中國(guó)薯?xiàng)l行業(yè)發(fā)展趨勢(shì)及投資盈利預(yù)測(cè)報(bào)告
- 期末 (試題) -2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 2025年高考政治時(shí)政熱點(diǎn) 延遲退休政策(知識(shí)銜接+練習(xí)+解析)
- 2.1 網(wǎng)絡(luò)改變世界 (教案) -2024-2025學(xué)年道德與法治八年級(jí)上冊(cè) 統(tǒng)編版
評(píng)論
0/150
提交評(píng)論