C C 實現演算法習題第三部分 貪心演算法 一)

2021-10-02 21:51:04 字數 3429 閱讀 7442

貪心演算法(又稱貪婪演算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。

問題描述
設有n個活動的集合e= ,其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si實現**
#include

#include

using

namespace std;

void

greedyselector

(int n,

int s,

int f,

int a)

;int

main()

;int f=

;int n =11;

int*a;

a =(int*)

malloc

(sizeof

(int

)*n)

;//生成陣列儲存活動是否被安排

for(

int i =

0; i < n; i++

)greedyselector

(n, s, f, a)

;return0;

}void

greedyselector

(int n,

int s,

int f,

int a)

} cout<<

"總計有"

<

"個活動被安排"

<

}

執行結果

問題描述

有一批貨櫃要裝上一艘載重量為c的輪船.其中貨櫃i的重量為wi。最優裝載問題要求在裝載體積不受限制的情況下,將盡可能多的貨櫃裝上輪船。

實現**
#include

using

namespace std;

//氣泡排序

void

sort

(int

*weight,

int n)}}

}//裝載

void

loading

(int

*weight,

int*judge,

int c,

int n)

} cout<<

"裝載到輪船上的有"

<

for(

int j =

0; j < n; j++)}

cout<

cout<<

"總重量"

<

}int

main()

;//6個貨櫃的重量

sort

(weight,6)

;int judge[6]

=;//對是否裝載進行判斷,預設初始值為0

loading

(weight, judge, c,6)

;return0;

}

執行結果

問題描述

假設要在足夠多的會場裡安排一批活動,並希望使用盡可能少的會場。設計乙個有效的貪心演算法進行安排。

實現**
#include

#define maxsize 100

#include

using

namespace std;

struct active

;void

bubblesort

(struct active sa,

int sum)}}

}void

greedy

(struct active sa,

int sum)

,degree,mintime =0;

bubblesort

(sa,sum)

;//按結束時間進行排序

degree =1;

//所需要的會場個數

alltime[0]

= sa[0]

.etime;

//第乙個會場花費的時間預設是第乙個活動的結束是啊金

for(i =

1;i < sum; i++)}

if(sa[i]

.stime < mintime)

else

} cout<<

"最少會場數為: "

<

}int

main()

greedy

(sa,sum)

;return0;

}

執行結果

問題描述

磁帶最優儲存問題要求確定n個程式在磁帶上的乙個儲存次序,使平均讀取時間達到最小。

實現**
#include

#include

#define size 100

struct tap

a[size]

;void

sort

(float b,

int n)

;//進行排序的函式

float

greedy

(struct tap a,

int n)

;//進行貪心演算法的函式

intmain()

printf

("平均讀取時間最小為:%f"

,greedy

(a,n));

return0;

}void

sort

(float b,

int n)}}

}float

greedy

(struct tap a,

int n)

sort

(b,n)

;//按p*l由小到大排序

for(i =

0;i < n; i++

)return time/sum;

}

執行結果

參考文獻 《計算機演算法設計與分析(第四版)》 王曉東 編著

劇本第三部分

第三部分劇本 場景一 女生宿舍,a趴在桌子上睡覺,電腦螢幕亮著,是vs 但是就寫了一行 小碼趴在a的胳膊上睡著。突然,a醒了,發現自己上課要遲到了,a 哎呀,完了完了,大中午的怎麼趴在這睡著了 邊說話邊收拾書包 轉頭看向小碼 a 把你放哪呢 說話的時候四周環視 算了,跟我去吧,我先把你放書包裡 說話...

第三部分 效能

索引管理 效能優化 效能監控 db.c1.find explain 查詢的詳細資訊列出來 db.c1.getindexkyes 所有索引的字段 db.c1.getindexes 所有索引的相關資訊 2 唯一索引 只需要在ensureindex命令中提定 uniqure true 即可建立唯一索引,如...

sqlalchemy第三部分

1.復用。在我們用sqlalchemy運算元據庫時,有部分 可以重複使用,我們將這部分放到乙個模組中,後面使用就可以呼叫這個模組,匯入裡面的方法。python 1.連線資料庫 from sqlalchemy import create engine hostname 127.0.0.1 ip位址 p...