下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第C++超詳細講解貪心策略的設(shè)計及解決會場安排問題目錄問題描述貪心策略算法設(shè)計代碼實現(xiàn)選擇結(jié)構(gòu)體隨機輸入會議按結(jié)束時間排序最終會議確定結(jié)束語
問題描述
設(shè)有n個會議的集合C={1,2,,n},其中每個會議都要求使用同一個資源(如會議室),而在同一時間內(nèi)只能有一個會議使用該資源。每個會議i都有要求使用該資源的起始時間bi和結(jié)束時間ei,且biei。如果選擇了會議i使用會議室,則它在半開區(qū)間[bi,ei)內(nèi)占用該資源。如果[bi,ei)與[bj,ej)不相交,則稱會議i與會議j是相容的。會場安排問題要求在所給的會議集合中選出最大的相容活動子集,也即盡可能地選擇更多的會議來使用資源。
貪心策略
1、選擇最早開始時間且不與已安排會議重疊的會議
2、選擇使用時間最短且不與已安排會議重疊的會議
3、選擇具有最早結(jié)束時間且不與已安排會議重疊的會議
這里我選取第三種方法
算法設(shè)計
設(shè)有11個會議等待安排,用貪心法找出滿足目標(biāo)要求的會議集合。這些會議按結(jié)束時間的非減序排列如表所示
11個會議按結(jié)束時間的非減序排列表:
代碼實現(xiàn)
#includeiostream
#include"會場安排.h"
#definen11
structmeeting{
intB;//開始時間
intE;//結(jié)束時間
usingnamespacestd;
intmain()
meetingM[n]={{8,11},{8,12},{2,13},{12,14},{1,4},
{3,5},{0,6},{5,7},{3,8},{5,9},{6,10}};
for(inti=0;ii++)
for(intj=0;jn-i-1;j++)
if(M[j].EM[j+1].E){
meetingT;
T=M[j];M[j]=M[j+1];M[j+1]=T;
intallowedTime=0;
for(inti=0,j=0;ii++){
if(M[i].BallowedTime){
j++;
cout"安排的第"j"個會議號是"i+1"此會議開始時間為:"M[i].B
"此會議結(jié)束時間是:"M[i].Eendl;
allowedTime=M[i].E;
}
選擇結(jié)構(gòu)體
定義meeting結(jié)構(gòu)體,只設(shè)置會議開始時間B和結(jié)束時間E即可。
隨機輸入會議
n為11
meetingM[n]={{8,11},{8,12},{2,13},{12,14},{1,4},
{3,5},{0,6},{5,7},{3,8},{5,9},{6,10}};
按結(jié)束時間排序
冒泡排序?qū)崿F(xiàn)即可:
for(inti=0;ii++)
for(intj=0;jn-i-1;j++)if(M[j].EM[j+1].E)
{
meetingT;T=M[j];M[j]=M[j+1];M[j+1]=T;
}
這里的中間變量必須設(shè)置為meeting類型,以便于將會議的所有屬性都交換
最終會議確定
intallowedTime=0;
for(inti=0,j=0;ii++){
if(M[i].BallowedTime){
j++;
cout安排的第j個會議號是i+1此會議開始時間為:M[i].B
此會議結(jié)束時間是:M[i].Eendl;
allowedTime=M[i].E;
}
}
先將會議開始時間設(shè)置為0,只要把按結(jié)束時間升序排列的第一個大于0的開始時間加到第一個內(nèi)容哦即可,隨后將第一個會議的結(jié)束時間設(shè)置為allowedTime,產(chǎ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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交管站財務(wù)制度
- 村衛(wèi)生室醫(yī)師定考制度
- 工程檢測公司財務(wù)制度
- 旅游景區(qū)衛(wèi)生獎罰制度
- 六安公共衛(wèi)生體系制度
- 財務(wù)制度管理kpi
- 警校宿舍衛(wèi)生扣分制度
- 電商公司運營獎懲制度
- 運營崗提成制度方案模板
- 采石場財務(wù)制度規(guī)定
- T-CCTAS 237-2025 城市軌道交通市域快線車輛運營技術(shù)規(guī)范
- 園林環(huán)衛(wèi)安全培訓(xùn)內(nèi)容課件
- 軟件系統(tǒng)上線測試與驗收報告
- 冬季交通安全測試題及答案解析
- 2025年國家能源局系統(tǒng)公務(wù)員面試模擬題及備考指南
- (2025年標(biāo)準(zhǔn))圈內(nèi)認主協(xié)議書
- 2025年安徽省中考化學(xué)真題及答案
- 2025年軍隊文職人員統(tǒng)一招聘面試( 臨床醫(yī)學(xué))題庫附答案
- 海馬體核磁掃描課件
- 某電力股份企業(yè)同熱三期2×100萬千瓦項目環(huán)評報告書
- 2026屆上海市部分區(qū)中考一模語文試題含解析
評論
0/150
提交評論