即使使用贪心算法可以解决分数背包问题,但是在0-1背包问题中没有可行的贪心算法。这是因为在0-1背包问题中,你只能要么拿走该物品的全部,要么完全不取该物品,而在分数背包问题中,如果你的背包已满,你可以只取部分物品。 这一点非常关键。下面是一个反驳贪心算法适用于0-1背包问题的例子。 假设你有一个大小为6的背包和以下物品:物品 价值 大小 价值/大小 A 5.5 4 1.38 B 4 3 1.33 C 4 3 1.33 对于0-1背包问题,如果你试图使用贪心算法,你会始终选择具有最高价值/大小比的物品,也就是物品A。 在取走物品A后,你只有2或更小尺寸的物品空间,所以你不能再拿任何其他物品了。 那意味着你背包里唯一的东西就是物品A,总价值为22。另一方面,如果你没有贪心地选择最有价值的物品,而是选择了物品B,然后你就有足够的空间来取物品C。 这将导致背包中的总价值为24,比贪心算法更好。