算法設(shè)計與分析-貪心算法-最優(yōu)裝載_第1頁
算法設(shè)計與分析-貪心算法-最優(yōu)裝載_第2頁
算法設(shè)計與分析-貪心算法-最優(yōu)裝載_第3頁
算法設(shè)計與分析-貪心算法-最優(yōu)裝載_第4頁
算法設(shè)計與分析-貪心算法-最優(yōu)裝載_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機算法與設(shè)計實驗內(nèi)谷:貪心算法-最優(yōu)裝載問題描述:有一批集裝箱要裝上一艘載重量為c的輪船。其中集裝箱i的重量為Wi,最優(yōu)裝載問題要求在裝載體積不受限制的情況 下,將盡可能多的集裝箱裝上輪船。問題分析:該問題可形式化描述為:nmax、xii 4n' WjXj _c x 101訂 _i _ ni呂算法描述:最優(yōu)裝載問題可用貪心算法求解。采用重量最輕者先裝的貪心選擇策略,可產(chǎn)生最優(yōu)裝載問題的最優(yōu)解。具體算法描述 如下:Templatevclass Type>Void Loadi ng(i nt x,Type w,Type c ,int n)int *t = new int n+1;

2、Sort(w,t ,n);for(i nt i =1;i<+n;i+)xi = 0;for (int i = 1;i<=n&&wtiv=c;i+)xti = 1;c-= wti;所需計算時間為0(nlogn)運行結(jié)果:'c:u5er5lj-zh a odocumentsvi s u a I studio 2010戸心£<5貪心算法%命小貪心算法£)«'='- EI> -39- r-lr -3? -33-另選一組數(shù)據(jù)輸入:卸23/ 1 ,"":重為貝I I "重數(shù)口囂第第第

3、第第 兀入入入入入 "篁幫請謂請請請3 5 6 9 5 42 4 2 5 7 1 BBB一 量簾Gy量量 二B-.E'dlul _&_ 二 R1-=nl-_ 勺亙冒宜建亙建*£O -EllulkuluE隹ML長靈 .atttttt 12 3 4 5 645taabx不不裝EEfhlju 巨匚g-L'-_bilU lull . 務(wù) 12 3 4 5 6 義MT第幕幕幕入人'結(jié)審'優(yōu)裝鼓可題""""""""""750141詳細設(shè)計:#in

4、elude <iostream>using n amespace std;con st int N = 100;templatevclass Type>void Load in g(i ntx,Type w, Type c, int n)int *t = new int n+1;/Sort(w, t, n); / 調(diào)用 SelectSort函數(shù)for(i nt k=1; k<二n; k+)xk = 0;/初始化數(shù)組xfor(i nt i=1; i<=n && wtiv=c; i+)xti = 1;/經(jīng)判斷該集裝箱可以裝入c -= wti;/輪船可栽

5、重相應(yīng)減少 templatevclass Type>void Sort(Type w,i nt *t,i nt n)Type tempArrayN+1,temp;int min;memcpy(tempArray,w,(n+1)*sizeof(Type);/將 w 數(shù)組數(shù)據(jù)拷貝到 數(shù)組tempArray中for(i nt e=1;e< 二n; e+)te = e;for(int i=1;i<n;i+) /類冒泡算法,將集裝箱按重量從小到大排列min 二i;for(i nt j二i+1;jv 二n ;j+)if(tempArraymi n>tempArrayj)min二j;

6、Swap(tempArrayi,tempArraymi n);Swap(ti,tmi n);template vclass Type>void Swap(Type &x,Type &y) /swap 函數(shù)Type temp = x;x = y;y = temp;int mai n()float c ; l輪船總載重int xN+1;/裝載結(jié)果(0與1分別表示是否裝入int a ;/集裝箱數(shù)量cout <<"/ 貪心算法求解最優(yōu)裝載問題 /"vvendl;coutvv"輪船載重為:"cin> >c;coutvv

7、"集裝箱數(shù)量:"cin> >a;float *m = new float a;coutvv"待裝物品的重量分別為:"<<e ndl;for(i nt i = 1;i<=a;i+)coutvv"請輸入第"vvivv"個集裝箱的重量:" ci n>> mi;cout«e ndl;coutvv"集裝箱列表:"<<e ndl;for(i nt j=1; j<二a; j+)cout<<mjvv"t"coutvve ndl;Loadi ng(x,m,c,a);coutvv"對應(yīng)的貪心選擇結(jié)果為:"<<endl;for(i nt f=1; f<=a; f+)if(xf=0|xf=1)cout<<xfvv"t"coutvve ndl;coutvv"集裝箱最優(yōu)裝載情況:"vvendl;for(i nt b=1; b

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論