贪心算法
来源:互联网 发布:淘宝人群画像分析 编辑:程序博客网 时间:2024/06/11 04:53
一,贪心算法的思想
贪心算法通过一系列的选择得到问题的最优解,它做出的每一个选择都是当前状态下的局部最优解,即贪心选择。
二,贪心算法的基本要素
贪心算法求解的问题的一般特征
1,贪心选择性质
是指所解问题的最优解可以通过一系列局部最优解的选择,即贪心选择来达到。
2,最优子结构性质
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。
三,贪心算法与动态规划的区别
1,贪心算法和动态规划算法都要求问题具有最优子结构性质,这是两类算法的共同点。
2,贪心选择性质是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。在动态规划算法中,每步所作出的选择往往依赖于相关子问题的解,因而只有在解出相关子问题后,才能作出选择。在贪心算法中,仅在当前状态下作出最优选择,即局部最优选择,然后再去解出做出这个选择后产生的相关子问题。正是由于这种差别,动态规划算法通常以自底向上的方式解各个子问题,而贪心算法通常以自顶向下的方式进行,以迭代方式做出相继的贪心选择,每做一次贪心选择就将所求问题转换为规模更小的子问题。
四,常见的使用贪心算法求解的问题
1,活动安排问题
struct Interval{ int start; int end;};void GreedySelector(vector<Interval> &intervals, vector<bool> &A){ int pre = 0; A[0] = true; for(int i = 1; i < intervals.size(); i ++){ if(intervals[i].start >= intervals[pre].end){ A[i] = true; pre = i; } else { A[i] = false; } }}
0 0
- 【贪心】贪心算法总结
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- Tensorflow报错:AttributeError: 'module' object has no attribute 'summary'
- B树的插入
- 谷歌Chrome,火狐Fire fox、IE阻止事件冒泡的兼容方法 -- sanai
- 利用回调函数实现一个计算器,实现加减乘除操作
- 本机使用Tomcat部署项目,使用localhost能访问但是不能使用自的Ip进行访问!
- 贪心算法
- FMDB的简单使用
- linux openoffice的安装
- 关于Jfinal中用户登录的问题
- SQLyog连接MySQL
- Android 倒计时功能的实现(CountDownTimer)
- 基于ROS的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)
- activiti动态创建流程
- gradle查看解决依赖问题-记录Butterknife8.5.1