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.貪心演算法和動態規劃的區別 先說一點個人感受。看過動態規劃演算法之後...