算法第四章作业
问题 1:“选点问题” 的贪心策略、性质证明与时间复杂度
(以经典 “区间选点问题” 为例,通常选点问题指:给定若干区间,选最少的点使得每个区间至少包含一个点)
贪心策略:将所有区间按右端点升序排序,每次选择当前区间的右端点作为选点,然后跳过所有包含该点的区间,重复此过程直到处理完所有区间。
贪心选择性质证明:假设最优解为 S,第一个被选的区间为 I1(右端点 r 1)。若 S中第一个点 p 1>r 1,则将 p 1替换为 r 1,新的集合仍能覆盖所有区间(因为 I 1被 r 1 覆盖,后续区间右端点≥r 1,原覆盖关系不变)。因此,选择 r 1
是贪心选择,且剩余子问题的最优解与原问题最优解一致。
时间复杂度:排序时间为
O(nlogn)
,遍历区间的时间为
O(n)
,总时间复杂度为
O(nlogn)
。
问题 2:对贪心算法的理解
贪心算法是一种逐步决策的算法思想:每一步都选择当前状态下的局部最优解,期望通过一系列局部最优选择得到全局最优解。其核心特点:
无后效性:当前选择仅依赖当前状态,不回溯之前的决策;
适用场景有限:仅当问题满足 “贪心选择性质”(局部最优能导出全局最优)和 “最优子结构”(子问题的最优解包含在原问题的最优解中)时,才能得到全局最优;
高效性:通常时间复杂度较低(多为线性或线性对数级)。

浙公网安备 33010602011771号