动态编程范式是否总是专注于将运行时复杂性约束在O(n)内



我对动态编程的运行时复杂性感到困惑。如果我使用动态编程范式来解决一个问题,这是否总是O(n(?

否。

还有反例。例如,背包问题有一个NP完全的动态规划算法,因此不存在O(n(算法。

否。

动态编程只是存储和重用已经计算的部分解决方案(子问题的解决方案(。

这种方法独立于找到这些偏解的难度,也独立于从其他偏解中创建新的偏解的困难。

所以你不能说动态编程限制了算法的复杂性。

https://en.wikipedia.org/wiki/Dynamic_programming

最新更新