1. 对贪心算法的理解
不是所有问题都能通过贪心算法得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
贪心算法有两个基本要素:贪心选择和最优子结构。
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。运用贪心策略在每一次转化时都取得了最优解。问题的最优子结构性质是该问题可用贪心算法或动态规划算法求解的关键特征。贪心算法的每一次操作都对结果产生直接影响,而动态规划则相反。贪心算法对每个子问题的解决方案都做出选择,不能回退;动态规划则会根据以前的选择结果对当前进行选择,有回退功能。动态规划主要运用于二维或三维问题,而贪心一般是一维问题。
使用贪心算法解题的一般步骤是:首先建立数学模型来描述问题,然后把求解的问题分成若干个子问题,再对每一子问题求解得到子问题的局部最优解,最后把子问题的局部最优解合成原问题的解。
2. 汽车加油问题的贪心选择性质
找出汽车油量为满时可以行使的最大路程范围内的最后一个加油站,然后继续运用该方法寻找,但是需要检查每一段路程是否超过汽车满油量时的最大路程。
3. 本章学习过程中的问题及结对编程情况
由于对贪心算法的理解还不够深刻,在运用贪心算法思想解题时还存在一定的问题,比如选择哪种数据结构、是否需要排序等,因此思维与熟练度都还有待提高。通过上机实践操作以及章内练习题目的编程,对贪心算法涉及到的常用解题方法有了较为具体的认识;通过与队友进行结队编程,在很大程度上弥补了自己的思维误区与缺陷,对算法题目有了更深层次的理解。虽然还有问题亟待解决,不过也有在一次次的失败与重来中使自己的编程能力得到了提升。