第四次作业
贪心策略:
1.优先选择结束时间最早的活动;
2.从第一个活动开始,每次选 “开始时间大于上一个选中活动结束时间” 的活动,直到遍历完所有活动。
证明贪心选择性质:
假设 A 是问题的一个最优解,将 A 中的区间按结束时间升序排序,设 A 中第一个区间为([sk,ek])。
情况 1:(k=1)(即 A 中第一个区间就是结束时间最早的 ([s1,e1]))→ 结论成立;
情况 2:(k>1)(即 A 中第一个区间不是 ([s1,e1])):
令A' = (A - {[sk,ek]}) ∪ {[s1,e1]})。因为 (e1 ≤ ek),且 A 中后续区间的开始时间都 > ek),所以后续区间的开始时间必然 > e1),所以A'中的区间也互不重叠;同时|A'| = |A|
得A 也是最优解,且包含 {[s1,e1]}。
时间复杂程度为O(nlogn);
对贪心算法的理解:
核心:每一步选局部最优,最终希望得到全局最优
前提:必须满足贪心选择性质和最优子结构性质

浙公网安备 33010602011771号