算法第4章作业

1、你对贪心算法的理解:

贪心算法是指:在每一步求解的步骤中,它要求“贪婪”的选择最佳操作,并希望通过一系列的最优选择,能够产生一个问题的(全局的)最优解。

  贪心算法每一步必须满足一下条件:

  a、可行的:即它必须满足问题的约束。

  b、局部最优:他是当前步骤中所有可行选择中最佳的局部选择。

  c、不可取消:即选择一旦做出,在算法的后面步骤就不可改变了。

动态规划的算法通常以自底向上的方式来解各种子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每一次的贪心选择就将所求问题简化为规模更小的子问题。贪心算法和动态规划类似,只能提供一个大概的思路,遇到具体的题目仍然需要具体分析,像最短路径和最小生成树的算法是利用到了贪心的思想并且进行了发散,而像活动选择这种问题才是单纯的用贪心算法去解决。

2、请说明汽车加油问题的贪心选择性质:

读入数据同时判断是否可达 ,如果加油站间距离大于n,则无法到达,设置当前可行驶的公里数left,在出发地时为n。如果当前可行驶的公里数小于到下一个加油站的距离,则加油,每加以一次油当前可行驶的公里数重新变为n,同时加油次数加1,行驶到下一个加油站,可行驶距离减去到下一个加油站的距离。

3、在本章学习过程中遇到的问题及结对编程的情况:

在学习本章时,主要是掌握贪心思想,在做会场安排问题时,不小心跟活动安排问题搞混了,不过好在结对同学及时提出来了,并且两个问题虽然不同但是本质其实都可以用贪心算法,所以又马上ac了。贪心算法真的很方便呢,另外还要感谢我的队友,美丽大方可爱善良细心认真!大大提高了我们的合作效率!互相提高编程水平真的很棒!还要夸夸郑琪老师真的是一位优秀有趣的男老师!

 

posted @ 2018-11-28 18:29  嘉兰  阅读(122)  评论(0编辑  收藏  举报