貪心算法解活動安排實驗報告

貪心算法解活動安排實驗報告

ID:10550283

大?。?03.50 KB

頁數(shù):4頁

時間:2018-07-07

貪心算法解活動安排實驗報告_第1頁
貪心算法解活動安排實驗報告_第2頁
貪心算法解活動安排實驗報告_第3頁
貪心算法解活動安排實驗報告_第4頁
資源描述:

《貪心算法解活動安排實驗報告》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、實驗3貪心算法解活動安排問題一、實驗要求1.要求按貪心法求解問題;2.要求讀文本文件輸入活動安排時間區(qū)間數(shù)據(jù);3.要求顯示結(jié)果。二、實驗儀器和軟件平臺儀器:帶usb接口微機(jī)軟件平臺:WIN-XP+VC++6.0三、源程序#include"stdafx.h"#include#include#include#defineN50#defineTURE1#defineFALSE0ints[N];/*開始時間*/intf[N];/*結(jié)束時間*/intA[N];/*用A存儲所有的*/intPartition(in

2、t*b,int*a,intp,intr);voidQuickSort(int*b,int*a,intp,intr);voidGreedySelector(intn,int*s,int*f,int*A);intmain(){intn=0,i;while(n<=0

3、

4、n>50){printf("");printf("請輸入活動的個數(shù),n=");scanf("%d",&n);if(n<=0)printf("請輸入大于零的數(shù)!");elseif(n>50)printf("請輸入小于50的數(shù)!");}printf("請分別輸入開始時間s[i]和結(jié)束時間f[i]:

5、");for(i=1;i<=n;i++){printf("s[%d]=",i,i);scanf("%d",&s[i]);printf("f[%d]=",i,i);scanf("%d",&f[i]);printf("");}QuickSort(s,f,1,n);//按結(jié)束時間非減序排列printf("按結(jié)束時間非減序排列如下:");/*輸出排序結(jié)果*/printf("序號t開始時間結(jié)束時間");printf("-------------------------");for(i=1;i<=n;i++)printf("%dt%dt%

6、d",i,s[i],f[i]);printf("-------------------------");GreedySelector(n,s,f,A);//貪心算法實現(xiàn)活動安排printf("安排的活動序號依次為:");for(i=1;i<=n;i++){if(A[i])printf("%d%d-->%d",i,s[i],f[i]);}printf("");system("pause");return0;}//快速排序voidQuickSort(int*b,int*a,intp,intr){intq;if(p

7、a,p,r);QuickSort(b,a,p,q-1);/*對左半段排序*/QuickSort(b,a,q+1,r);/*對右半段排序*/}}//產(chǎn)生中間數(shù)intPartition(int*b,int*a,intp,intr){intk,m,y,i=p,j=r+1;intx=a[p];y=b[p];while(1){while(a[++i]x);if(i>=j)break;else{k=a[i];a[i]=a[j];a[j]=k;m=b[i];b[i]=b[j];b[j]=m;}}a[p]=a[j];b[p]=b[j];a[j

8、]=x;b[j]=y;returnj;}//貪心算法實現(xiàn)活動安排voidGreedySelector(intn,int*s,int*f,int*A){//用集合A來存儲所選擇的活動A[1]=TURE;//默認(rèn)從第一次活動開始執(zhí)行intj=1;//j記錄最近一次加入到A中的活動for(inti=2;i<=n;i++){//f[j]為當(dāng)前集合A中所有活動的最大結(jié)束時間//活動i的開始時間不早于最近加入到集合A中的j的時間f[j]if(s[i]>=f[j]){A[i]=TURE;//當(dāng)A[i]=TURE時,活動i在集合A中j=i;}elseA[i]=FALSE;}}

9、四、運(yùn)行結(jié)果五、實驗小結(jié)貪心算法總是做出在當(dāng)前看來最好的選擇,也就是說貪心算法并不從整體最優(yōu)考慮,它所作出的選擇只是在某種意義上的局部最優(yōu)選擇?;顒影才艈栴}就是要在所給的活動集合中選出最大的相容活動子集合。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心算法提供了一個簡單、漂亮的方法使得盡可能多的活動能兼容地使用公共資源。

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。