分治、动态规划、贪婪 之 算法分析
来源:互联网 发布:免费网管软件推荐 编辑:程序博客网 时间:2024/04/28 11:47
分治、动态规划、贪婪 之 算法分析
分治与动态规划都用到了递归的思想,但是对他们之间的区别在概念上一直比较模糊,今天附带贪婪选择稍微整理一下他们。
算法之道上说,标准分治、动态规划、贪婪选择称得上是孙子兵法的下、中、上策。标准分治虽然将大问题分解成小问题,但是每个小问题都需要解决,相当于逢城必攻实属下策;动态规划则聪明地发现,很多子问题都相同,那么重复的子问题可以不用重复计算,就是不对每个城市进行攻破,从而节省精力和兵力,但仍然需要攻克子问题中的相当部分,属于中策;而贪婪选择则将子问题限于一个,即将攻城数量减少到了最低,从而最大限度上减少了精力和兵力,属于上策。不过就像兵法里所云,上策运用地不好,就有失策的时候。贪婪思想运用地不当,或者在条件不充分或不明朗的条件下用,则会大败而归。
分治法所能解决的问题一般具有以下几个特征:
该问题的规模缩小到一定程度可以很容易地解决;
该问题可以分解成若干规模相同的子问题,即该问题具有最优子结构性质;
利用该问题分解出的子问题的解可以合并成该问题的解;
该问题所分解出的子问题是相互独立的,即子问题不包含公共的子问题。
分治在每一层递归上都要完成分解、解决、合并三个操作。
归并排序、堆排序、快速排序都有分治算法的思想。
0 0
- 分治、动态规划、贪婪 之 算法分析
- 分治,动态规划和贪婪算法
- ReviewForJob——算法设计技巧(贪婪算法+分治算法+动态规划)
- 贪婪算法和动态规划
- 分治算法,动态规划,贪婪算法以及递归之间的区别与联系
- 算法分析之动态规划
- 【贪婪算法、动态规划】Jump Game II
- 浅谈动态规划,贪婪,回溯算法联系
- 动态规划与贪婪算法学习笔记
- 剑指offer------动态规划与贪婪算法
- 【算法】动态规划与贪婪法区别
- 股票交易 动态规划 分治算法
- 常用算法之分治法与动态规划法
- 动态规划 分治算法与 贪心算法
- 动态规划算法与分治算法思想
- 算法学习_分治算法、动态规划
- 算法分析之动态规划一
- 算法分析之动态规划二
- Spring MVC list的一点笔记
- oracle 数据被删除闪回操作
- ubuntu安装 jdk-7u10-linux-i586.gz
- tarjan算法求缩点+树形DP求直径
- Ubuntu搭建LAMP环境
- 分治、动态规划、贪婪 之 算法分析
- 文法的类型
- Android 的Margin和Padding属性以及支持的长度单位
- VC的「附加依赖项」、「库目录」和「包含目录」分别有什么用?
- 快速在centos下用yum搭建svn服务
- Android系统五大布局详解Layout
- JAVA默认排序算法问题
- 烛光里的妈妈
- SQL Server排序