简单易懂的英语算法书

卡卡goto 46 0 PDF 2019-03-18 16:03:22

自顶向下的动态规划问题 研究递归树。在哪里可以看到相同的节点? 这儿有很多的相同节点,列如,fib(3)出现了两次而fib(2)出现了三次 。 为什么我们每次都要重新计算? 事实上,当我们调用fib(n)时,我们不应该做比O(n)调用更多的事情,因为只有O(n)可能的值我们可以在fib上抛出。每次计算fib(i)时,我们都只是把结果缓存好以便于后面的应用就好了。 这才是真正的对于记忆化的解释。 这实际上并不是递归发生的方式。然而,通过将进一步向上的节点(而不是较低的节点)进行扩展,在它变得更大之前,树就长得很宽了。(这就像先做面包,而不是深度优先。)有时候,这样更容易计算树中节点的数量。你所做的只是改变你扩展的节点,以及哪些节点返回缓存的值。如果您被困在计 算动态编程问题的运行时,请尝试此方法。 算动态编程问题的运行时,请尝试此方法。

用户评论
请输入评论内容
评分:
暂无评论