今天,我们来学习python五大算法之一的----贪婪算法
基本介绍:
贪婪算法也叫贪心算法,指在解决问题时,先做出当前看来的最优选择,不从整体最优上加以考虑,算法得到的是某种意义上的局部最优解
对所采用的贪心策略一定要仔细分析其是否满足无后效性
贪婪算法的基本思路:
建立数学模型来描述问题
把求解的问题分成若干个子问题
对每个子问题求解,得到子问题的局部最优解
把子问题的解局部最优解合成原来问题的一个解
该算法存在的问题:
不能保证求得的最后解是最佳的
不能用来求最大值或最小值的问题
只能求满足某些约束条件的可行解的范围
教室调度的问题:
在上课时间不冲突的情况下,怎样安排才会更加多的安排课程呢?
1.选出结束最早的课,它就是要在这间教室上的第一堂课
2.接下来,必须选择第一堂课结束后才开始的课。同样,你选择结束最早的课,这将是要在这间教室上的第二堂课
一直进行重复就会找到最终的答案
在有些的情况下,贪婪算法可能不会找到最优解,但是非常接近,有时候只需要找到一个能大致解决问题的算法就可以了
集合
集合类似于列表,只是不能包含重复的元素
并集意味着将集合合并交集意味着找出两个集合中都有