(1)建立數學模型來描述問題;
(2)把求解的問題分成若干個子問題;
(3)對每一子問題求解,得到子問題的區域性最優解;
(4)把子問題的區域性最優解合併成原來解問題的乙個解。
(1)從問題的某一初始解出發;
(2)while能向給定總目標前進一步;
(3)求出可行解的乙個解元素;
(4)由所有解元素組合成問題的乙個可行解。
這個題目要求編寫一段程式實現統一銀座超市的找零方案。只需輸入要補給顧客的金額,然後通過程式就可以計算出該金額可由哪些面額的人民幣組成。
人民幣有100、50、10、5、2、1、0.5、0.2、0.1等多種面額(單位為元)。在找零錢時,可以有多種方案,例如需補零錢68.90元,至少可有以下3種方案:
■ 1張20、4張10、1張5、3張1、1張0.5、4張0.1;
■ 2張20、2張10、1張5、3張1、1張0.5、4張0.1;
■ 6張10、1張5、3張1、1張0.5、4張0.1。
#include
#define maxn 9
int parvalue[maxn]=;
int num[maxn]=;
intexchange
(int n)
else
if(n <
10&& n >=5)
else}}
intmain()
return0;
}
結果:
50.00:1張
10.00:1張
5.00:1張
1.00:3張
0.10:1張
0.00:1張
演算法學習筆記 貪心演算法
貪心也就是貪婪,就好比我們考試期末成績是由平時分和期末成績兩部分組成,我們複習時肯定是想要在考完當前這門之後的最短的時間內得到最多的分數。這就是貪心的思想。所謂貪心演算法 就是指 我們所做出的選擇在當前情況下總是最好的,它考慮的不是全域性最優解,而是 某種意義上的區域性最優解。核心思想 就是以區域性...
貪心演算法學習筆記
貪心演算法是指在對問題求解時,總是做出在當前看來是最好的選擇。不從整體最優上加以考慮,只做出在某種意義上的區域性最優解。選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與當前狀態有關。最優解問題大部分都可以拆分成乙個個的子問題,把解空間的遍歷視作對子問題樹的遍歷,則以某種形...
演算法學習 貪心演算法
所謂貪心演算法,是在對問題求解時,總是做出在當前看來最好的選擇。即,不從整體最優上加以考慮,它所做出的僅僅是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,就是某個狀態以前的過程不會影響以後的狀態,只與當前的狀態有關。貪心...