算法第四章作业

1.贪心算法的理解

贪心选择指所求问题的整体最优解可以通过一系列局部最优的选择,贪心算法和动态规划法的却别在于,动态规划法,每一步所做的选择都要依赖相关子问题的解,要将问题分离成相关子问题后,再解出相关子问题。而在贪心算法中,仅在当前状态下做出最好选择,即局部最优选择,再去解做出这个选择后产生的相应的子问题。做了贪心选择后,原问题简化为规模最小的类似子问题。然后用数学归纳法证明,通过每一步做贪心选择,最终可得到问题的整体最优解。

2.请选择一道作业题目说明你的算法满足贪心选择性质

4-2 删数问题 

给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。

贪心选择性质:如果还没删够书,一个数的后一位比前一位低,这个数的后一位就可以替代前一位,作为新的最小数,所以分解为子问题一个数的后一位比前一位低就可以把前一位删掉了。然后在考虑升序的情况,从后面往前删除,删够为止。还有要考虑输出数的时候输出高位0的情况,需要设立flag看看是否已经输出非0的数,还有全是0要把最后一位0输出出来。

3.请说明在本章学习过程中遇到的问题及结对编程的情况。

遇到问题是有时候不能抓住正确的贪心选择,错误的贪心选择考虑问题不够周全,结对编程良好,有时候是自己敲的代码能解释清楚给对方听,对方敲的代码也能自己快速理解。

posted @ 2020-11-15 01:57  Whites  阅读(93)  评论(0)    收藏  举报