貪心法是指 在揹包沒有裝滿之前,只要能裝得下就裝進揹包.
在使用貪心法解決0-1揹包問題主要在於分解方案和貪心選擇方案.
(貪心法不能保證最優解)
為了盡可能的得到最優解,選擇物品時,總是選擇v[i]/w[i]最大的物品裝進去
所以在程式的開始,應首先對物品按照v[i]/w[i]從大到小進行排序,因此在排序的過程中可以定義乙個陣列來記錄原本的第i個物品在排序之後放在第幾位,即th[i]=k:原來的第i個物品放在現在的第k個裡面.(也可以定義乙個結構體在結構體中記錄原來的次序)
public class tanxin {int tanxin(int w,int v,int x,int th,int max,int total){
int k = 0,q,c=total;
int sum =0;
while(k
貪心法解決揹包問題
揹包問題 問題描述 給定n 種物品和乙個容量為c的揹包,物品i的重量是wi,其價值為vi,揹包問題是如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大。注意 和0 1揹包問題的區別,在揹包問題中,可以將某種物品的一部分裝入揹包中,但不可重複裝入。用貪心演算法求解揹包問題的關鍵是如何選擇貪心策略,...
貪心法(非0 1揹包問題)
給定揹包容量50kg,物品資訊 物品1,重量10kg,價值60元 物品2,重量20kg,價值100元 物品3,重量30kg,價值120元 注意 可以部分裝入 和題目 pragma once include include include include include using namespace...
貪心法解決連續揹包問題
continuousknapsack w 1.n v 1.n l input n件物品的重量陣列w和價值陣列v,揹包承重l output 沒見物品放入揹包的重量陣列p 1.n 總價值c for i 1 to n do p i 0 r i v i w i sort r in decreasing or...