貪心演算法 揹包問題

2021-07-11 15:52:20 字數 801 閱讀 1738

貪心演算法:當前最優解

例如在刪除數的乙個例子中,乙個長度不大於240位的整數中,隨機刪除n個數,要求使得剩餘的數:

從左到右的,組成乙個最小的整數

貪心步驟:

例如 乙個數: 1457326      n=4

1).找到當前最大的數: 7 刪除;145326

2).找到當前最大的數: 6 刪除;14532

3).找到當前最大的數: 5 刪除;1432

4).找到當前最大的數: 4 刪除;132

對於最優子結構:貪心演算法也具有最優解;例如每一步中的 7 6  5 4 就是最優解

01 揹包:貪心演算法的思路

有n個物品 ,總總量為w,每件物品重量wi;

每個東西拿或者不拿

貪心演算法的整體思路:

對於第j個物品,如果去掉物品j,剩餘的n-1個物品,要拿走總量最多為w-wj,且價值最高的

如果再拿掉i件,要從剩餘n-2中。拿走總總量最多為w-wj-wi,且價值最高的

依次類推。。。。。

部分揹包問題: 貪心演算法解決的思路:

有n個物品,揹包總總量為w,每件物品的重量為wi

每件東西,可以拿乙個,可以拿一部分

貪心演算法的整體思路:

對於第j個 物品,如果要掉物品 j的重量 wp,要從剩下的n-1件物品中,

和物品j的 wj - wp中可帶走的,總重量為 w-wp價值最大的(去掉j物品中的一部分,j物品剩餘部分還可以拿)

做法:通過乙個**/重量 式子

對每一件物品進行排序,在滿足揹包容量的前提下,按照從大到小的順序放入揹包中,直至揹包容量=w

揹包問題(貪心演算法)

揹包問題 程式8 4 2.cpp 定義控制台應用程式的入口點。揹包問題 貪心演算法 include stdafx.h define maxnumber 20 typedef struct node object float find object wp,int n,float m i 0 while...

貪心演算法 揹包問題

詳細見原帖 我寫的是自己的感悟 揹包問題 有乙個揹包,揹包容量是m 150。有7個物品,物品可以分割成任意大小。要求盡可能讓裝入揹包中的物品總價值最大,但不能超過總容量。物品 a b c d e f g 重量 35 30 60 50 40 10 25 價值 10 40 30 50 35 40 30 ...

貪心演算法 揹包問題

部分 揹包問題 1 0 1揹包問題 給定n種物品和乙個揹包。物品i的重量是wi,其價值為vi,揹包的容量為c。應如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大?注 在選擇裝入揹包的物品時,對每種物品i只有2種選擇,即裝入揹包或不裝入揹包。不能將物品i裝入揹包多次,也不能只裝入部分的物品i。0...