动态规划和记忆化搜索是两种常用的递归算法,都用于解决重复计算的问题。他们的主要目的都是通过记录已经解决过的子问题的答案,来避免重复计算。
不同点:
1.思想不同:动态规划法是通过分析问题的最优子结构,将问题分解为子问题,逐个求解,并记录结果,再根据记录的结果推导出原问题的答案;而记忆化搜索法是在递归过程中,对于已经求解过的子问题的答案进行记录和保存,避免再次搜索。
2.实现方式不同:动态规划通常采用自下而上的递推方式,从小到大求解;记忆化搜索通常采用自上而下的递归方式,从大到小求解。
相同点:
1.都避免了重复计算:动态规划和记忆化搜索通过记录已经解决的子问题的答案,避免了重复计算。