算法-贪心算法简单介绍

ops/2025/1/16 3:00:32/

下面是贪心算法视频课的导学内容.

目录

    • 1. 什么是贪心算法?
    • 2. 贪心算法简单的三个例子:
      • 1. 找零问题
      • 2. 最小路径和问题
      • 3. 背包问题
    • 3. 贪心算法的特点
    • 4. 贪心算法学习的方式?

1. 什么是贪心算法?

简单来说, 我们称以局部最优进而使得全局最优的一种思想实现出来的算法贪心算法.
其过程, 往往分为:

  1. 把解决问题分为若干部分
  2. 解决每一步的时候, 都选择当前看起来"最优"的选择
  3. “希望” 得到全局最优解

下面来解释两个引号词
“最优”: 上面说的意思是当前看来最优, 而不是从整体的角度看起来最优
“希望”: 意思是按这种思想去处理题目, 有可能会导致最后结果不是最优, 有可能从全局来看是最优结果的意思

2. 贪心算法简单的三个例子:

1. 找零问题

情景: 现在你有50块钱, 买了4块钱的东西, 卖家想要用最少的张数找你零钱.
在这里插入图片描述
此时可以试试贪心算法.

应该找你的钱数:

        50 - 4 = 46

按照贪心策略, 此时应该找你一张最大面额的, 因此是给你一张20的

        46 - 20 = 26 此时还需要找你26元

按照贪心策略, 此时应该找你一张最大面额的, 因此是给你一张20的

        26 - 20 = 6 此时还需要找你6元

按照贪心策略, 此时应该找你一张最大面额的, 因此是给你一张5元的

        6 - 5 = 1 此时还需要找你1元

按照贪心策略, 此时应该找你一张最大面额的, 因此是给你一张1元的

        1 - 1 = 0 此时还需要找你0元

此时找钱结束

其过程如下:
在这里插入图片描述

2. 最小路径和问题

起点在(0, 0)位置, 规定只能左右上下移动, 在这其中会路过许多方块. 每次路过方块需要加上对应的"路径值", 问如何才能到达目的地同时求和为最小?

按照贪心思想, 过程如下:
在这里插入图片描述

3. 背包问题

最大背包容量为: 8单位, 如何放一些物品, 使得该背包拿到的总价值最高?
在这里插入图片描述
假设我们按照V去贪心: ③ * 8 -> 总价值是: 1 * 8 = 8

假设我们按照W去贪心: ① * 1 + ③ * 3 -> 总价值是: 10 + 1 * 3 = 13

假设我们按照W/V去贪心: ① * 1 + ③ * 3 -> 总价值是: 10 + 1 * 3 = 13

3. 贪心算法的特点

  1. 贪心算法没有标准和模板, 贪心算法只是一种思想

  2. 贪心算法需要证明其对错, 对的需要其证明他是对的, 错的需要证明, 或者举反例

对于证明这块来说,

2-1 显然找零问题是对的, 证明如下:
在这里插入图片描述
2-2 最小路径和问题 和 背包问题都是错误的, 证明如下(举反例):
在这里插入图片描述

4. 贪心算法学习的方式?

  1. 遇到不会的很正常, 看多了解析就"可能"会了.
  2. 注重证明. 比如"背包"和"路径和"问题贪心出来都不是最优解.

EOF.


http://www.ppmy.cn/ops/150447.html

相关文章

从零开始开发纯血鸿蒙应用之多签名证书管理

从零开始开发纯血鸿蒙应用 一、前言二、鸿蒙应用配置签名证书的方式1、自动获取签名证书2、手动配置签名证书 三、多签名证书配置和使用四、多证书使用 一、前言 由于手机操作系统,比电脑操作系统脆弱很多,同时,由于手机的便携性&#xff0c…

Nginx简述

Nginx 就是一个 超级聪明的“门卫” ,负责管理和转发进入你网站的流量。 Nginx 做什么? 接收请求:当你打开一个网站时,浏览器会发送请求。Nginx 就像一个门卫,接到这些请求。转发请求:Nginx 看一看请求的…

springboot 根据UUID生成唯一的短链接

为了生成唯一的短链接,我们可以利用UUID(通用唯一识别码)来确保每个短链接的唯一性。然后,我们将这个UUID进行Base62编码以缩短其长度。以下是完整的Spring Boot应用程序示例,展示了如何实现这一功能。 1. 添加依赖 …

开源安防软件ClamAV —— 筑梦之路

ClamAV(Clam AntiVirus)是一款开源的防病毒软件,广泛应用于网络安全领域,尤其在邮件网关和服务器环境中具有重要地位。以下是关于 ClamAV 的详细介绍: 1. ClamAV 的简介 ClamAV 由 Tomasz Kojm 于 2001 年创建&#…

详解 Docker 启动 Windows 容器第一篇:多种方式及实用配置指南

文章目录 前言1. 使用 Docker Compose 启动2. 使用 Docker CLI 启动3. 使用 Kubernetes 启动4. 兼容性说明5. 常见问题解答6. 高级配置总结 前言 在容器化技术中,Docker 允许我们在不同的平台上轻松运行各种操作系统,包括 Windows。本文将介绍如何通过 …

逐“绿”前行 企业综合能源管控低碳转型如何推进?

引言: 在“双碳”战略指引下,中国低碳节能各项工作有序推进,逐步建立起碳达峰碳中和“1N”的政策体系,重点领域、重点行业及各地区的碳达峰实施方案相继出台。能源对于促进经济社会发展、增进人民福祉至关重要。近年来&#xff0…

JavaScript系列(26)--安全编程实践详解

JavaScript安全编程实践详解 🔒 今天,让我们深入探讨JavaScript的安全编程实践。在当今的网络环境中,安全性已经成为开发者必须重点关注的领域。 安全编程基础 🌟 💡 小知识:JavaScript安全编程涉及多个方…

OmniAudio-2.6B 简介与音频转文本实践

OmniAudio-2.6B 是一个基于 Transformer 的先进语音识别模型,具有强大的音频转文本能力。它利用大规模预训练和多语言支持,为离线和在线语音处理提供高精度的解决方案。 一、OmniAudio-2.6B 的原理 1. 核心技术 Transformer 架构:OmniAudio…