貪心演算法之裝箱問題

2021-08-18 14:59:01 字數 1033 閱讀 7183

貪心準則: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 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有乙個好的程式幫他們解決...