• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
FengFlyYing
博客园    首页    新随笔    联系   管理    订阅  订阅

第四次作业

一、贪心策略
针对区间选点问题,我采用的贪心策略为:将所有区间按右端点升序排序,遍历排序后的区间,每次选择当前区间的右端点作为选点(若当前区间未被已选点覆盖),跳过所有包含该点的区间,重复此过程直至所有区间被覆盖。
二、贪心选择性质证明
贪心选择性质定义:局部最优选择能推导出全局最优解。证明:假设最优解S的第一个选点覆盖区间[a,b],设右端点最小的区间为[c,d]。由于d最小,[c,d]未被S的第一个选点覆盖,故S中必有选点y覆盖[c,d]。将S的第一个选点替换为y,得到新解S':y覆盖[c,d],且因y ≤ d < b,所有被原选点覆盖的区间仍被y覆盖,S'选点数量与S相同,仍是最优解。由此证明,选择最小右端点区间的右端点作为选点这一局部最优选择,可推导出全局最优解,满足贪心选择性质。
三、时间复杂度分析
排序阶段:代码使用冒泡排序,时间复杂度为O(n²);遍历选点阶段:仅一次遍历,时间复杂度为O(n);整体时间复杂度由排序主导,为O(n²)。
若要优化,可改用sort函数排序,排序复杂度降至O(nlogn)。
四、对贪心算法的理解
贪心算法是一种基于 “局部最优” 推导 “全局最优” 的算法思想,它不考虑整体最优,而是每一步都做出当前看起来最好的选择。这种算法的核心优势在于思路简单、实现容易,并且时间复杂度通常较低,在许多场景下能高效地得到最优解。但贪心算法并非适用于所有问题,它必须满足两个关键性质:一是贪心选择性质,即局部最优能推导出全局最优;二是最优子结构性质,即问题的最优解包含其子问题的最优解。
在实际应用中,选择合适的贪心策略是解决问题的关键。不同的贪心策略可能会导致不同的结果,只有经过证明的贪心策略,才能保证得到全局最优解。

posted @ 2025-12-28 13:02  FengFlyYing  阅读(5)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3