从递归到分治

一、递归结构

递归是很有用的思想。把一个很复杂的问题使用同一个策略将其分解为较简单的问题,如果这个的问题仍然不能解决则再次分解,直到问题能被直接处理为止。

它的结构一般是这样的:

1.1 终结边界。 函数结束递归的出口

1.2 缩小问题规模。通过把问题转换对子问题的求解, 缩小规模。

由于1.2处理方式不同, 产生了不同的算法。比如动态规划,贪婪算法,分治算法等。

二、动态规划

缩小问题 = 若干个子问题解与当前若干路径的最优解。它最终解只包含一个子问题的解, 选择方式所有子问题解与当前路径运算得到的最优的子问题解。由于会重复计算参考我之前写的递归优化可以解决。

三、贪婪算法

缩小问题 = 当前最优+当前最优条件下的一个子问题解。最终解只包含一个子问题的解, 选择方式是当前路径最优。

四、分治算法

缩小问题 = 当前最优+当前最优条件下的一个子问题解。它会把所有子问题的解合并起来。

五、参考文章

https://www.cnblogs.com/mrlsx/p/5847233.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值