貪心演算法:當前最優解
例如在刪除數的乙個例子中,乙個長度不大於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...