貪心準則:1.貪心準則設計演算法過程的每一步都是最優解
2.貪心準則一旦被設計,中途不可改變
裝箱問題:
問題描述:
1.有若干個體積為v的箱子
2.有n個物品,體積分別為:v1,v2,v3…………
要求:將所有物品都裝入箱子中,使箱子盡可能的少
貪心準則:
1.將所有物品按照體積降序排列
2.每次取出乙個物品(當前未裝入箱子中體積最大的)遍歷所有已經開啟的箱子,將該物品放入乙個較早開啟的箱子中
#include#include#define v 35
#define n 5
//物品資訊
typedef structelemg;
//物品結點
typedef struct nodegoodslink;
//箱子結點
typedef struct boxboxlink;
elemg *createg();
elemg *buddlesont(elemg *g);
boxlink * enchase(elemg *g);
void print(boxlink *hbox);
int main(void)
//建立物品資訊陣列,然後初始化
elemg *createg()
else
} p->remainder -=g[i].gv;
//放物品
貪心演算法 裝箱問題
貪心演算法中必須設定乙個貪心準則 來尋求每一步的最優解,但最後往往不是問題的整體最優解。問題 假設有n個物品,其體積為v1,v2,v3,v4.v n,有若干個體積為v的箱子 理論物品的體積應該小於箱子的體積 要求把所有物品全部裝入箱子中,要求開啟的箱子數最少。分析 怎樣合理化分配才能使得開啟的箱子數...
貪心演算法(裝箱問題)
貪心演算法的基本思想是找出整體當中每個小的區域性的最優解,並且將所有的這些區域性最優解合起來形成整體上的乙個最優解。因此能夠使用貪心演算法的問題必須滿足下面的兩個性質 1.整體的最優解可以通過區域性的最優解來求出 2.乙個整體能夠被分為多個區域性,並且這些區域性都能夠求出最優解。3.區域性最優解不一...
貪心演算法 裝箱問題
描述 乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為11,22,33,44,55,66。這些產品通常使用乙個 66h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有乙個好的程式幫他們解決...