如果01Knapsack是指数的,为什么从1到n的循环是线性的?

时间:2015-10-16 21:34:04

标签: algorithm knapsack-problem np np-complete

我在StackOverflow上已经阅读了很多关于此问题的问题,他们都提出了一个很好的观点:针对背包问题的DP方法的复杂性是O(nW),其在W中的位数是指数的。也就是说,如果我再向W添加一位,我需要两倍的循环。

算法非常多:

For i = 0 to n
   For w = 0 to W
      //Stuff

但是,如果我看一个像从1到n(= n(n + 1)/ 2)求和的算法,我只会有一个for循环。如果我将n表示所需的位数增加1,那么我需要做两倍的循环。那么指数也是如此吗?

我唯一可能的理解是,在这种情况下,输入的大小是“n”,而在背包中,输入的大小是表示W所需的位数。但是,......为什么?为什么这两种尺寸不同?循环看起来一样。

感谢。

0 个答案:

没有答案