贪心算法:
声明:此文档是由重庆八中郭茂老师制作
1、什么是贪心算法:
**贪心算法(又称贪婪算法,Greedy Algorithm)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。**
2、基本思路
(1)把求解的问题分成若干个子问题。
(2)对每一子问题求解,得到子问题的局部最优解。
(3)把子问题的解局部最优解合成原来解问题的一个解。
3、算法实现。
(1)从问题的某个初始解出发。
(2)采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。
(3)将所有部分解综合起来,得到问题的最终解。
贪心方法的基本思想
贪心是一种解题策略,也是一种解题思想
使用贪心方法需要注意局部最优与全局最优的关系,选择当前状态的局部最优并不一定能推导出问题的全局最优
利用贪心策略解题,需要解决两个问题:
该题是否适合于用贪心策略求解
如何选择贪心标准,以得到问题的最优解
【引例】
在一个N×M的方格阵中,每一格