算法第四章作业

一、对贪心算法的理解

  就我个人看来,贪心算法与动态规划很像,都要求问题具有最优子结构性质,区在于,动态规划所做的每一个选择都要依赖于以往所做过的选择,依赖于子问题的解,依赖于将来所作的选择,但是贪心算法所做的选择可以依赖于以往所做过的选择,但绝不以来于将来所做的选择,也不依赖于子问题的解,它所做的每一个选择都是当前状态下的局部最好选择,即贪心选择。正是由于这种差别,动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式做出相继的贪心选择,每做一次贪心选择就将所求问题简化为规模更小的子问题。

       还有一点就是贪心算法并不总能求得问题的整体最优解。至于为什么还要选择贪心算法就是因为,相比起动态规划算法,贪心算法会更简便,实现起来也会更简单一些。

二、汽车加油问题的贪心选择性质

       汽车选择问题的解题思路与活动安排问题相似,区别在于汽车加油问题给出的站与站之间的距离不能够进行排序。

       这个问题的贪心选择大体上就是每一次加满油后要尽可能多的越过加油站,使加油的次数尽可能的少。每一次加油都可以类比为一次活动安排,不过是已经给定顺序的活动,汽车加满油后可行驶的距离类比为磁带的长度,加油站之间的距离则可以类比为程序的大小。

       该算法的贪心选择的意义就是使汽车在到达加油站加油时剩余的量最少,即使它每次加油行驶的距离最远,以便尽可能的减少加油次数。

三、结对编程情况

       要说遇到的问题的话估计就是上机实践的第二题吧,虽然尝试了很多次,但一直打不出正确的答案。还有就是一开始不是很理解为什么要使用贪心算法,不过后来真正上手之后就发现贪心算法比起动态规划算法来说要好实现的多,虽然普适性没有动态规划高,但也有它自己的优势。

       结对编程情况依旧,互相学习,共同进步。

posted @ 2019-11-19 22:42  月Raido  阅读(99)  评论(0编辑  收藏  举报