背包问题的最佳和最坏情况

The best and the worst case scenarios for the knapsack problem

我想知道背包问题的最佳和最坏情况。我想最好的情况应该是所有对象的值和权重都具有相同的值。例如:

int[] values = new int[] { 5, 5, 5};
int[] weights = new int[] { 9, 9, 9}; 

但我不知道最坏的情况。

非常感谢!

由于最佳和最坏情况是相对于算法或问题解决方案定义的,我假设您指的是著名的背包问题动态规划解决方案。

背包算法的动态规划解法是pseudo-polynomial algorithmO(nW)时间内运行s,其中n表示物品的数量,[=12] =]表示最大权重。因此,您可以通过简单地将最大权重设置为任意高的值来使该算法 运行 非常糟糕。特别是,将每个权重设置为 2^n 将使该算法在 O(2^n) 时间内达到 运行。