1.概念:贪心算法又叫做贪婪算法,它在求解某个问题是,总是做出眼前最大利益。
也就是说只顾眼前不顾大局,所以它是局部最优解。核心点:通过局部最优推出全局最优。
1.某天早上公司领导找你解决一个问题,明天公司有N个同等级的会议需要使用同一个会议室,现在给你这个N个会议的开始和结束时间,你怎么样安排才能使会议室最大利用?即安排最多场次的会议?
现在我们怎么去贪?也就这个我们选择的贪心策略:、
选时间最短:1-3,2~4,3~5,4~6
按结束时间从小到大排序:首先把第一个加入我们可以开会的列表。之后只要开始时间是大于我们上一个的结束时间的就可以开
咱们来看思考题1:
0点~9点:9点之前开始的会议都不行了。
8点~10点
10点~12点:12点
8点~20点
2.贪心算法的套路:一定会有一个排序。哈夫曼编码,贪心算法,压缩算法。最短路径
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
贪心算法其最重要的两个点就是:
贪心策略:排序
通过局部最优解能够得到全局最优解
一般通过以下问题就可以通过贪心算法解决:
1.针对某个问题有限制值,以及有一个期望的最好结果,通常是从某些数据中选出其中一些,达到最好的结果。
2.一般会有一个排序,找出贡献最大的。
3.举例看贪心是否可以解决。
一般用在任务调度,教师排课等系统。