6
贪心算法的引入--找币问题
一种更简单可行的方法:
1. 先取2.5 2枚
价值2.5+2.5=5.0
余6.3-5=1.3
2. 再取1.0 1枚
价值1.0
余1.3-1=0.3
3. 不取0.5 0枚
因为0.5>0.3
4. 再取0.1 3枚
价值0.1×3=0.3
余0.3-0.3=0
5. 找零完毕。
6. 得最优解X={ 2, 1, 0, 3 } ,共需最少的硬币数6枚。
方法总结:在不超余额的前提下,每次都找最大面 值的硬币。这种找币的方法叫做贪心算法。
思考:有没有可能不是最好的方法?
7
贪心算法—描述
顾名思义,贪心算法总是作出在当前看来最好的 选择。也就是说贪心算法并不从整体最优考虑, 它所作出的选择只是在某种意义上的局部最优选 择。
当然,希望贪心算法得到的最终结果也是整体最 优的。虽然贪心算法不能对所有问题都得到整体 最优解,但对许多问题它能产生整体最优解。如 单源最短路经问题,最小生成树问题等。
新学期来临,为迎接新生,各院系都要举办迎新晚 会。时间将近,各院系在申请使用学院礼堂进行彩 排。为了提高礼堂使用率,决定白天不间断的开放, 各院系可以上报各自使用的时间区间(开始时间以 及终止时间,时间长短不限),由礼堂管理人员安 排尽可能多的院系在同一天里彩排。
请根据以下时间段尽可能多安排几个院系: [8:00,10:30), [9:00,11:30), [7:00,11:00), [11:30-14:00), [12:00,13:30) , [13:00,15:30), [15:00,16:00), [14:30,16:00), [16:00,18:00)