一、基本思想
–>归纳、分析、选择正确合适的贪心策略
在每一个局部阶段,都做一个在当前“看上去”最优的决策,并期望通过每一次所做的局部最优选择产生出一个全局最优解。做出贪心决策的依据称为“贪心策略”。贪心策略一旦做出,就不可再更改。
二、3种证明方法(反证法,构造法,调整法)
1、反证法
用贪心的策略,依次构造出一个解 S1,假设最优解 S2 不同于S1,可以证明是矛盾的,从而得出 S1 就是最优解。(举出反例)
eg:n个字符串凑成最大整数
->将 A+B 与 B+A 相比较,如果前者大于后者,则认为 A>B。
2、构造法
根据描述的算法,用贪心的策略依次构造出一个解,可证明一定是合法的解。即用贪心法找可行解。(举例子)
eg:取火柴游戏(博弈论)
->转成二进制后,进行异或。为0则先取必败;为1则先取必胜
3、调整法
用贪心的策略,依次构造出一个解 S1。假设最优解 S2 不同于 S1,找出不同之处,在不破坏最优性的前提下,逐步调整 S2,最终使其变为 S1,从而 S1 也是最优解。(调整a[i]和a[j]进行比较)
eg:排队接水
->把接水时间少的人尽可能排在前面
三、实时调整类贪心
–>每做一步决策都得重新调整决策
eg:桐桐的新闻系统
->将间隔从小到大排序,输出一个(出队)后将它加上间隔再入队