您的位置:首页 > 其它

贪心算法、递归算法、动态规划算法 简要总结

2016-02-01 16:20 267 查看
一般实际生活中我们遇到的算法分为四类:

一>判定性问题

二>最优化问题

三>构造性问题

四>计算性问题

而今天所要总结的算法就是着重解决 “最优化问题”

《算法之道》对三种算法进行了归纳总结,如下表所示:

标准分治
动态规划
贪心算法
适用类型
通用问题
优化问题
优化问题
子问题结构
每个子问题不同
很多子问题重复(不独立)
只有一个子问题
最优子结构
不需要
必须满足
必须满足
子问题数
全部子问题

都要解决
全部子问题

都要解决
只要解决

一个子问题
子问题

在最优解里
全部
部分
部分
选择与求解次序
先选择

后解决子问题
先解决子问题

后选择
先选择

后解决子问题
分治算法特征:

1)规模如果很小,则很容易解决。//一般问题都能满足

2)大问题可以分为若干规模小的相同问题。//前提

3)利用子问题的解,可以合并成该问题的解。//关键

4)分解出的各个子问题相互独立,子问题不再包含公共子问题。 //效率高低

【一】动态规划:

依赖:依赖于有待做出的最优选择

实质:就是分治思想和解决冗余。

自底向上(每一步,根据策略得到一个更小规模的问题。最后解决最小规模的问题。得到整个问题最优解)

特征:动态规划任何一个i+1阶段都仅仅依赖 i 阶段做出的选择。而与i之前的选择无关。但是动态规划不仅求出了当前状态最优值,而且同时求出了到中间状态的最优值。

缺点:空间需求大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: