1.对贪心算法的理解
运用贪心算法解决问题时我们将一个问题分解为若干个子问题,求解每个子问题的最优解并合并得到所求问题的解。
然而贪心算法所做的选择只是局部的最优选择,合并得到的最终结果不一定是整体最优的(如找硬币问题),但即使不能得到整体最优解,运用贪心算法求得的最终结果也是最优解很好的近似解。
2.最优合并问题 —— 贪心选择性质分析
2.1问题描述

2.2问题分析
要使得比较次数最多,则应该每次合并的两个数为数组中最大的两个数;同理要使得比较次数最少,则应该每次合并的两个数为数组中最小的两个数。
2.3贪心策略
调用sort函数对输入数组进行升序排序,每次令数组中a[n-1]跟a[n-2]元素合并成新元素(每次合并后不需要重新排序,因为两个最大的数合并后在原数组中仍是最大的数)
(也可以运用cmp函数对数组进行降序排列或运用reverse函数进行数组倒置)
调用sort函数对输入数组进行升序排序,每次令数组中a[0]跟a[1]元素合并成新元素并再次调用sort函数排序最后求得最少比较次数。
3.说明在本章学习过程中遇到的问题及结对编程的情况
3.1遇到的问题
贪心算法的难点在于贪心策略的选择,只要选择方向正确,题目也就迎刃而解。
3.2结对编程的情况
贪心算法的难度低于前一章所学的动态规划,所以本章很多题目都是由我编写代码,伟翀帮忙查漏补缺和指导。
浙公网安备 33010602011771号