贪心法证明:按步骤归纳活动选择
按规模归纳装在问题
交换论证最小延迟调度
得不到最优解的处理:找零钱的阐述化分析
活动选择问题:
限制:两个活动的进行时间不能重叠
策略1:开始早的优先(不是最优),将活动按照开始时间排序,挑选最优
很明显最优解是活动2和活动3,但活动1的执行时间太长,最优解成立活动1
策略2:占时间少的优先( 不是最优),计算活动占用时间,从小到大排序,挑选最优
活动2的执行时间最短,但选择活动2,活动1和活动3都无法选择
策略3:结束早的优先( 最优),将活动按结束时间从小到大排序,挑选最优
Select算法
输入:活动集S、活动开始时间s(i)、活动结束时间f(i),i=1,2,3…,n,f(1)<f(2)<…<f(n)
输出:A⊆S,A是被选中的活动集
- n←length(S)
- A←{1}
- j ←1
- for i←2 to n
-
if s(i) > f(i)