news 2026/5/10 13:16:40

初学贪心算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初学贪心算法

一、基本概念

  1. 核心思想
    局部最优 → 全局最优(通过每一步的贪心选择,希望达到全局最优解)

  2. 适用条件
    贪心选择性质:每一步的局部最优选择能导致全局最优解。
    最优子结构:问题的最优解包含子问题的最优解。

  3. 与动态规划的区别
    贪心算法不回溯,一旦做出选择就不再改变。
    动态规划会保存子问题的解,通常用于有重叠子问题和最优子结构,但贪心选择不成立的情况

二、经典问题类型与示例

1.区间问题

  • 区间调度(最大不相交区间)
    按结束时间排序,每次选择结束最早且不与已选区间重叠的区间。
  • 区间覆盖
    选择覆盖起点且结束最远的区间,逐步推进。

2.分配问题

  • 分配饼干
    将最小的饼干分配给胃口最小的孩子。
  • 任务调度
    按结束时间或耗时排序贪心。

3.背包问题(部分背包)

  • 价值/重量比降序贪心选择(仅适用于物品可分割的情况)。

4.哈夫曼编码

  • 每次合并频率最小的两个节点,构造最优前缀码。

5.最短路径(Dijkstra算法)

  • 每次选择当前距离起点最近的节点,更新邻接节点距离。

6.最小生成树

  • Prim算法:每次添加距离当前树最近的节点。
  • Kruskal算法:按边权从小到大添加,使用并查集避免环。

7.硬币找零问题

  • 在硬币面额具备贪心性质时(如人民币1、5、10元),从大到小选择。
  • 注意:并非所有面额体系都适用贪心(如{1, 3, 4}元找6元,贪心选4+1+1不如3+3)

三、贪心算法的局限性

  1. 不保证全局最优
    如果问题不具备贪心选择性质,贪心可能得到次优解(如一般背包问题不可分割时)。

  2. 需要问题具有特定结构
    必须仔细分析问题是否满足贪心条件。

  3. 证明困难
    有时贪心策略看似显然,但严格证明复杂

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 6:12:08

Blender3mfFormat插件:3D打印工作流的终极解决方案 [特殊字符]

Blender3mfFormat插件:3D打印工作流的终极解决方案 🚀 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 想要在Blender中轻松处理3MF文件&#xff0…

作者头像 李华
网站建设 2026/5/9 11:15:39

终极解决方案:微信多设备同步工具让你的工作生活无缝衔接

终极解决方案:微信多设备同步工具让你的工作生活无缝衔接 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 还在为手机微信无法在平板同时登录而烦恼吗?现在,一个革命性的多设…

作者头像 李华
网站建设 2026/5/9 2:56:44

NVIDIA Profile Inspector终极指南:解锁显卡隐藏设置的完整方案

NVIDIA Profile Inspector终极指南:解锁显卡隐藏设置的完整方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏画面卡顿、撕裂而困扰?想要挖掘显卡全部潜力却不知从何…

作者头像 李华
网站建设 2026/5/3 7:23:51

【Java毕设源码分享】基于springboot+vue的的理发店发艺美发店管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/5 12:26:05

Blender 3MF插件:如何让3D打印工作流效率提升300%?

Blender 3MF插件:如何让3D打印工作流效率提升300%? 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 还在为3D打印模型导入导出时的数据丢失而烦恼吗…

作者头像 李华
网站建设 2026/5/9 4:55:38

纪念币预约3分钟速成:智能自动化工具完全指南

还在为纪念币预约的繁琐流程而头疼?这款智能自动化工具将彻底改变你的预约体验。基于Selenium和深度学习OCR技术,它能自动完成信息填写、验证码识别和预约提交全过程,让技术新手也能轻松上手。 【免费下载链接】auto_commemorative_coin_book…

作者头像 李华