首页 > 编程语言 > 详细

动态规划和分治法,贪心算法以及递归的再一次深刻理解和体会

时间:2017-08-26 02:44:06      阅读:362      评论:0      收藏:0      [点我收藏+]

每次体会算法都有新的感觉,刷题越多,对算法的理解感觉也就越深刻。

下面我们来重新体会下分治法,动态规划,贪心法,递归的理解。

1.分治法:

   将问题分成单独的阶段,每个阶段互相不干扰很独立,如10米长的木棍,切成10段,每段去解决每一段的问题。(阶段没有关系)

2.贪心法

    站在全局的角度,也是将问题堪称分为多个阶段,只不过阶段和阶段之间有一定的递进关系,如从5毛,1元,2毛,1毛,2元中,去找最少的钱币构成10块钱。首先是站在全局的角度,先从中取其最大值,为第一阶段,然后在从剩余的当中在找最大值,构成第二阶段。。。。。。如此往复,这就是贪心法。

3.动态规划

    是阶段和阶段之间有重复,举例说明:求一个数组的最长递增子序列。假设数组有10个元素,那么如何求解呢?将10个元素划分成10个阶段,第一个阶段,从第一个元素中求解,第二个阶段在第一个阶段求其解,第三个阶段在第一个,第二个阶段综合的基础上求解,第四个阶段在第1,2,3个阶段求其解,最后。。。。第k个阶段在第1,2....k-1个阶段求其最优解。

4.递归算法

    个人感觉和动态规划反着来的样子,有点像,问题规模为10,转化为问题规模为9的问题,,问题规模为9的问题,转化为8.。。。。。

5.回溯法和分支限界法

  都属于组合优化问题,就是按照过程向下面去寻找最优解,在寻找最优解的过程,不断的剪取枝条,来减少搜索情况。不行就换思路。


本文出自 “简答生活” 博客,谢绝转载!

动态规划和分治法,贪心算法以及递归的再一次深刻理解和体会

原文:http://1464490021.blog.51cto.com/4467028/1959415

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!