分治法/动态规划算法/回溯法

1.分治法

大问题分为小问题来解决,快速排序法就是。

2.动态规划法
自己理解:存储子程序结果列表的算法设计称为动态规划。把预先计算好的数值放到一个列表中供将来重新使用。
弥补了递归的缺点:可能会重复计算很多子问题

参考链接:
https://www.cnblogs.com/gzshan/p/11135204.html

https://www.jianshu.com/p/8007e35935f6

https://www.jianshu.com/p/3d959834e83d

总结:
1.动态规划的核心思想是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。是为了避免计算很多重复的问题。从头开始计算,并把结果保存供下面的使用。

2.递归算法的实现,会计算很多重复的问题,且存在从最后往前计算。

3.回溯法
也叫试探法,类似于深度优先遍历方法,即从一条路开始走,能进则进,不能进退回来换一条路走。

你可能感兴趣的:(分治法/动态规划算法/回溯法)