贪心算法:
(1) 给定n个物品,物品价值分别为P1,P2,…,Pn,物品重量分别W1,W2, …, Wn,背包容量为M。每种物品可部分装入到背包中。输出X1,X2,…,Xn,0<Xi<1, 使得 最大,且 <M。试设计一个算法求解该问题,分析算法的正确性.
解:
设计思路:首先将n个物品按单位价值从大到小排序,每次取剩余物品中单位价值最大的物品放入背包,若背包的容量足够则放入整个物品,否则放入物品的一部分。
最优子结构性质:
贪心选择性:
综上所述,该算法具有贪心选择性。
算法的源代码如下: