当前位置: 首页 > news >正文

第四章算法作业

一、我的贪心策略
策略:将区间按右端点从小到大排序,遍历区间时,如果当前区间左端点大于上一个选点,则选择当前区间的右端点作为新点。
核心思想:每次选择能覆盖当前未覆盖区间中结束最早的区间的右端点。

二、证明算法满足贪心选择性质
贪心选择性质证明:
设排序后第一个区间为 [a₁, b₁]

  1. 必要性:任何解必须包含一个点覆盖 [a₁, b₁]
  2. 贪心选择:我选择 b₁ 作为第一个点
  3. 最优性证明:①假设存在最优解 OPT,第一个点是 p;②由于 p 覆盖 [a₁, b₁],所以 a₁ ≤ p ≤ b₁;③用 b₁ 替换 p:;④b₁ 仍覆盖 [a₁, b₁]; ⑤对于其他被 p 覆盖的区间 [aᵢ, bᵢ],因为 b₁ ≥ pb₁ ≤ bᵢ(排序性质),所以 b₁ 也覆盖它们;⑥因此 b₁ 也是一个最优的第一点
    结论:存在一个最优解以我的贪心选择开始。

三、时间复杂度分析

  1. 排序:sort(intervals, intervals + n, compare), C++ sort 平均时间复杂度:O(n log n)
  2. 遍历选择:for (int i = 0; i < n; i++),单层循环:O(n)
  3. 总时间复杂度:O(n log n) + O(n) = O(n log n)

四、对贪心算法的理解
本质特征:

  1. 局部最优:每一步选择当前状态下的最佳选项
  2. 不可逆:选择后不回溯
  3. 高效简单:通常实现简洁,运行快速
    适用条件:①贪心选择性质:局部最优能导向全局最优(如本题);②最优子结构:问题的最优解包含子问题最优解
    我的代码体现了:排序预处理:将问题转化为适合贪心的结构;贪心规则:if (intervals[i].start > lastPoint) 决定何时选新点;结果积累:countlastPoint 记录局部决策
    局限性:不是所有问题都适用(如0-1背包),但适用于具有特定结构的问题。
http://www.jsqmd.com/news/100926/

相关文章:

  • 播放器视频后处理实践(二)氛围模式
  • 版本升级|Origin 2026 科学绘图与数据分析软件
  • 基于改进A*算法融合DWA算法的机器人路径规划MATLAB仿真程序(含注释) 包含传统A*算法...
  • 【课程设计/毕业设计】基于springboot/javaEE的二手手机交易平台的设计与实现基于javaEE的二手手机交易平台的设计与实现【附源码、数据库、万字文档】
  • 基于AI数字人系统源码的低成本开发方案与实践经验
  • K-Means聚类+PCA降维:高维数据聚类的最优组合实战指南
  • SQL 调优全解:从 20 秒到 200 ms 的 6 步实战笔记(附脚本)
  • AI一周重要会议和活动(12.15-12.22)
  • Nano Banana Pro:设计师的威胁,还是创意领域的新伙伴?
  • BioSIM 抗人 IL-1b 抗体SIM0362:多种应用兼容性,适应多样化实验需求
  • 【c++】——c++编译的so中函数有额外的字符
  • Linux入门(更新中...)
  • 从工具到思维:构筑持续测试的文化基石
  • 实战笔记】台达PLC与温控器联机全流程(附源码)
  • [THUPC 2024 初赛] 一棵树
  • 清理linux大文件
  • Unity场景后处理小记 - 实践
  • Ubuntu22.04安装postgresql16.8
  • “comsol煤矿模型仿真合集:瓦斯抽采、采空区耦合性、采场倾斜煤层、注氮灭火与岩石压裂损伤模...
  • 三相异步电动机启保停正反转星三角控制电路及西门子200PLC与MCGS7.7联机程序(带注释和...
  • 黄金票据(Golden Ticket)和白银票据(Silver Ticket)
  • 0x3f第六天 递归思想
  • 云原生安全实战:一次72小时的DDoS攻击,我们是怎么活下来的?
  • HTR3236 36路LED PWM驱动器全方位介绍
  • 如何修复 Element Plus Table 在分页切换时滚动条不更新的问题
  • 水塔液位控制系统实战手记
  • 出国点餐看不懂菜单?别慌!用微信“扫一扫”就能搞定
  • OE 平台是什么?基于多来源数字内容管理需求形成的海外工具型平台
  • 高效缺陷管理的艺术与科学
  • 新的spring boot3.x和spring-security6.x的流程