【发布时间】:2017-03-18 20:42:39
【问题描述】:
我正在使用 DP 算法,即将子问题值存储在一个轴的二维数组中
表示n 项目和其他 - 从0 到W 的w 值,其中W 是最大值
背包容量。因此T[n-1][W] 值是我需要的最佳值
计算。我在其他资料中读到这个算法的时间复杂度是
O(nW)。我的问题是:是否有可能进一步降低这个时间复杂度?
我找到了其他答案,它谈到了几乎相同的事情,但没有例子我无法理解:how to understand about reducing time complexity on 0~1 knapsack
我告诉我们不需要用小的w 值来计算T[i][w],因为它们没有用于最佳值,但我不能正确地得到这个,谁能给出详细和直观的例子?这会让我受益匪浅。
【问题讨论】:
-
我认为你的意思是 O(nw),而不是 O(nW),尽管它在渐近上没有真正的区别 (w = W+1)。
-
这个来源告诉它是 O(nW):geeksforgeeks.org/…
-
渐近无关紧要,所以说 O(nw) 或 O(nW) 是正确的。
标签: c time-complexity dynamic-programming knapsack-problem