算法第四章作业

1、对贪心算法的理解:

贪心算法和动态规划算法有一定的相似之处。首先,这两个算法都需要将问题分解成一个个子问题去解决;其次,两个算法都涉及到最优解。但是这两个算法不同之处在于,动态规划算法在解决子问题时包括一个比较的过程,每一次解决子问题的过程中,在各个选项中选择最优的选项,所以动态规划算法需要一个比较过程。但贪心算法不同,贪心算法已经默认了一个选择方法,每一次解决子问题过程中,按照事先规定好的选择方法去作出选择。

贪心算法相比于动态规划算法更容易实现。但贪心算法的贪心选择性质需要严格的验证,不能随意地采取贪心算法去解决问题。简单来说,如果需要采用贪心算法去解决问题,首先需要验证待解决问题是否符合贪心算法的使用条件。验证方法通常采用反证法,首先考察问题的一个整体最优解,其次修改最优解得到解法A,并假设解法A修改之后是问题的最优解,通过证明原先的最优解比解法A更优,即可。

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

本道题的贪心选择性质是在行驶到下一个加油站之前,判断当前所剩的油量是否能支撑汽车到达下一个加油站,如果能,那么汽车不加油,反之,汽车加油。

以样例为示,证明贪心选择性质。样例如下所述:汽车加满油之后可以行驶 公里,该路段有 个加油站,每个站点之间的距离为1 2 3 4 5 1 6 6

根据上述贪心选择性质,问题的最优解为4,汽车在行驶过程中在第3、4、6、7个加油站进行加油。那么假设最优解修改为在第5个加油站处也进行加油,那么本题的解就变为5,显然,修改后的解法不如最优解。可知贪心选择策略是对的。

3、结对编程情况:

在这章算法学习中遇到的问题就是结构体不太熟悉,可能也是因为时间隔得比较久了,平时也很少接触道结构体,所以可能比较生疏。不过现在打了一些,多少也回忆了起来。

结对编程的伙伴真的很给力,编程上或者算法上面遇到的问题问他,他基本上都能帮我解决。感谢结对编程的伙伴!

posted @ 2018-11-30 18:35  萌新一枚。  阅读(120)  评论(0编辑  收藏  举报