演算法實驗2《貪心演算法實驗》

2021-08-13 21:30:59 字數 2103 閱讀 9908

1. 編寫乙個簡單的程式,實現單源最短路徑問題。

#include

#include

using

namespace std;

void

init

(int

**list)

} list[0][

1]=10

; list[0][

3]=30

; list[0][

4]=100

; list[1][

2]=50

; list[2][

4]=10

; list[3][

2]=20

; list[3][

4]=60

;for

(int i =

0; i <

5; i++)}}

void

dijkstra

(int n,

int v,

int dist,

int**c)

dist[v]=0

; s[v]

=true

;for

(int i =

0; i < n; i++)

s[u]

=true

;for

(int j =

0; j < n; j++)}}

}int

main

()

2. 編寫一段程式,實現找零。

【問題描述】當前有面值分別為2角5分,1角,5分,1分的硬幣,請給出找n分錢的最佳方案(要求找出的硬幣數目最少)。

解析:

有25分,10分,5分,1分的,那麼1分的肯定有n%5個,問題歸結為5分,2分,1分的問題。

2個1分不如1個2分,所以1分最多1個, 3個2分不如1個5分和1個1分,所以2分最多2個。

只有6種情況,除掉1個1分2個2分的情況有5種情況,按照n%5直接對應就是唯一的最優解。

#include

using

namespace std;

intmain

()system

("pause>nul"

);return0;

}

3. 編寫程式實現多機排程問題

【問題描述】要求給出一種作業排程方案,使所給的n個作業在盡可能短的時間內由m臺機器加工處理完成 。約定,每個作業均可在任何一台機器上加工處理,但未完工前不允許中斷處理。作業不能拆分成更小的子作業。

#include

using

namespace std;

intpar

(int a,

int p,

int r)

a[p]

= a[j];

a[j]

= x;

return j;

}void

qsort

(int list,

int p,

int r)

}int

getminindex

(int

*p,int m)

}return index;

}int

main

()qsort

(list,

0, n-1

);int

*p =

newint

[m];

//m上的程序時間和

int**result =

newint

*[m];

int*num =

newint

[m];

//m上的程序數

for(

int i =

0; i < m; i++)

for(

int i = n-1

; i >=

0; i--)

for(

int i =

0; i < m; i++)

}system

("pause>nul"

);return0;

}

9 貪心演算法 危險的實驗

description 小明最近在上化學課,他需要使用到 n 種化學物質來進行他的實驗。在做實驗的時候,他需要將所有化學物質放在桌面上,按次序排成一條直線。然而每一種化學物質都是危險品,對於第 i 個化學物質,如果有另外乙個化學物質距離它的距離小於 ai,那麼就會發生 小明想知道如果要安全的完成他的...

(演算法設計與分析)實驗四 貪心演算法

理解並實踐貪心演算法。1 完成教材第4章7個應用範例中的至少4個 任選4個實現即可 2 理解函式式程式設計正規化,嘗試用c 11進行函式式程式設計。1 活動安排問題 include using namespace std define num 50 void greedyselector int n...

演算法2 貪心演算法

1.總體描述 貪心演算法總是做出在當前看來最好的選擇,也就是說貪心演算法並不從整體最優考慮,它做出的選擇只是在某種意義上的區域性最優選擇。2.特點 可以用貪心演算法求解的問題一般具有兩個重要的性質 貪心選擇性質和最優子結構性質 3.貪心演算法和動態規劃的區別 先說一點個人感受。看過動態規劃演算法之後...