算法第四章作业
一、你对贪心算法的理解
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。
不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解
二、请选择一道作业题目说明你的算法满足贪心选择性质
贪心策略:总是从可选程序中选择最小的试放入磁盘。
算法:
1、先排序:对程序按大小升序排;
2、循环添加:从i = 0开始,选择排序后序列的第 i 个(即a[i],0 <= i <n),判断是否满足小于磁盘剩余空间,是则计数(count++),否则跳出循环;
证明贪心选择可以推出最优解:
选择从最小程序开始,即解不为空时可以选择最小程序。假设解不为空,从这样得到的选择序列中任选一个,用最小程序替换,放入程序数(count)不变;
三、请说明在本章学习过程中遇到的问题及结对编程的情况
问题:怎么证明你现在选择的贪心策略是对的,能够让你得出最优解
就如会场安排问题,一开始用最早结束排序,一直得不出最优解;
最后在熳如的说明下才知道是最早开始。
解决:取反例/尝试证明选择的贪心策略可以得出最优解
结对编程情况:我的结对编程对象:刘熳如
上周主要有三道编程题,在第二道时由于一开始思路错误,迟迟无法解决,最后由熳如先思考,我来思考第三道。
在第三道编程题错误时,与熳如一起讨论错误的地方,最后得以解决。
熳如的第二题思路由于时间问题也没法在课程上实现,在课下的时间两人都思考这道题,通过交流解决。