算法-贪心算法简单介绍

news2025/1/16 4:57: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.coloradmin.cn/o/2277352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hive】新增字段(column)后,旧分区无法更新数据问题

TOC 【一】问题描述 Hive修改数据表结构的需求,比如:增加一个新字段。 如果使用如下语句新增列,可以成功添加列col1。但如果数据表tb已经有旧的分区(例如:dt20190101),则该旧分区中的col1将为…

《深度剖析算法优化:提升效率与精度的秘诀》

想象一下,你面前有一堆杂乱无章的数据,你需要从中找到特定的信息,或者按照一定的规则对这些数据进行排序。又或者,你要为一个物流公司规划最佳的配送路线,以降低成本和提高效率。这些问题看似复杂,但都可以…

量子计算:从薛定谔的猫到你的生活

文章背景 说到量子计算,不少人觉得它神秘又遥不可及。其实,它只是量子物理学的一个“应用小分支”。它的核心在于量子比特的“叠加”和“纠缠”,这些听上去像科幻小说的概念,却为计算世界开辟了一片全新的天地。如果经典计算是“…

Linux第二课:LinuxC高级 学习记录day02

2.4、shell中的特殊字符 2.4.4、命令置换符 或者 $() 反引号:esc下面的按键,英文状态下直接按 功能:将一个命令的输出作为另一个命令的参数 echo 不会认为hostname是一个命令 加上 之后,先执行hostname,拿到主机名…

基于mediapipe的手势游戏控制

基于mediapipe的手势游戏控制 ​ 玩游戏,那不是有手就行!!! mediapipe介绍 ​ Mediapipe是Google在2019年开发并提出的一款开源的跨平台多媒体处理框架,用于构建基于机器学习的应用程序,特别是涉及到计算机视觉、音频处理、姿势估计等领域。…

安装软件缺少msvcp110.dll怎么办?出现dll丢失的解决方法

在日常使用电脑安装各类软件的过程中,相信不少朋友都遇到过 “缺少 msvcp110.dll” 的报错提示 。下面就来深入聊聊这个 msvcp110.dll 文件,以及当它缺失时,我们该如何巧妙应对。 一、msvcp110.dll 文件介绍 1.1 定义与功能 msvcp110.dll 是…

(学习总结19)C++11 列表初始化、右值引用、移动语义、引用折叠与完美转发

C11 列表初始化、右值引用、移动语义、引用折叠与完美转发 一、列表初始化C98 传统的 {}C11 中的 {}C11 中的 std::initializer_listC11 {} 列表初始化 与 std::initializer_list 区别 二、右值引用左值和右值左值引用和右值引用引用延长生命周期左值和右值的参数匹配类型分类 …

从0开始学习搭网站第二天

前言:今天比较惭愧,中午打铲吃了一把,看着也到钻二了,干脆顺手把这个赛季的大师上了,于是乎一直到网上才开始工作,同样,今天的学习内容大多来自mdn社区mdn 目录 怎么把文件上传到web服务器采用S…

ffmpeg硬件编码

使用FFmpeg进行硬件编码可以显著提高视频编码的性能,尤其是在处理高分辨率视频时。硬件编码利用GPU或其他专用硬件(如Intel QSV、NVIDIA NVENC、AMD AMF等)来加速编码过程。以下是使用FFmpeg进行硬件编码的详细说明和示例代码。 1. 硬件编码支…

【高可用自动化体系】自动化体系

架构设计的愿景就是高可用、高性能、高扩展、高效率。为了实现架构设计四高愿景,需要实现自动化系统目标: 标准化。 流程自助化。 可视化:可观测系统各项指标、包括全链路跟踪。 自动化:ci/cd 自动化部署。 精细化&#xff1a…

elasticsearch中IK分词器

1、什么是IK分词器 ElasticSearch 几种常用分词器如下: 分词器分词方式StandardAnalyzer单字分词CJKAnalyzer二分法IKAnalyzer词库分词 分词∶即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库…

arcgis中生成格网矢量带高度

效果 1、数据准备 (1)矢量边界(miain.shp) (2)DEM(用于提取格网标高) (3)DSM(用于提取格网最高点) 2、根据矢量范围生成格网 模板范围选择矢量边界,像元宽度和高度根据坐标系来输入,我这边是4326的,所以输入的是弧度,输出格网矢量gewang.shp 3、分区统计 …

一文了解如何使用 DBeaver 管理 DolphinDB

在日常的数据开发、分析和数据库运维中,一款优秀的 IDE 能够极大地提升工作效率。DBEaver 是一款由 Java 编写的一站式跨平台连接器,其社区版本已能支持连接近百种数据库,受到广大开发者的喜爱。近期。DolphinDB 与 DBeaver 团队共同努力&…

【ArcGIS微课1000例】0138:ArcGIS栅格数据每个像元值转为Excel文本进行统计分析、做图表

本文讲述在ArcGIS中,以globeland30数据为例,将栅格数据每个像元值转为Excel文本,便于在Excel中进行统计分析。 文章目录 一、加载globeland30数据二、栅格转点三、像元值提取至点四、Excel打开一、加载globeland30数据 打开配套实验数据包中的0138.rar中的tif格式栅格土地覆…

JVM之垃圾回收器ZGC概述以及垃圾回收器总结的详细解析

ZGC ZGC 收集器是一个可伸缩的、低延迟的垃圾收集器,基于 Region 内存布局的,不设分代,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记压缩算法 在 CMS 和 G1 中都用到了写屏障,而 ZGC 用到了读屏障 染色指针&a…

C# XPTable 日期字段处理(XPTable控件使用说明十三)

1、SQLite数据库定义为日期类型 2、XPtable中日期字段定义与显示 //显示时间表columnModel1.Columns.Clear();columnModel1.Columns.Add(new NumberColumn("id", 30));NumberColumn numberColumn new NumberColumn("次数", 50);numberColumn.Maximum 100…

【pycharm发现找不到python打包工具,且无法下载】

发现找不到python打包工具,且无法下载 解决方法: 第一步:安装distutils,在CMD命令行输入: python -m ensurepip --default-pip第二步:检查和安装setuptools和wheel: python -m pip install --upgrade …

晨辉面试抽签和评分管理系统之六:面试答题倒计时

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

王炸组合:Dolphinscheudler 3.1.*搭配SeaT unnel2.3.*高效完成异构数据数据集成

概述 本篇主要介绍如何通过Dolphinscheduler海豚调度搭配Seatunnel完成异构数据源之间的数据同步功能,这个在大数据流批一体数仓建设的过程中是一个非常好的解决方案, 稳定高效,只要用上了你肯定爱不释手。 环境准备 dolphinscheduler集群…

【AI日记】25.01.11 Weights Biases | AI 笔记 notion

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales笔记:我的 AI 笔记主要记在两个地方 有道云笔记:数学公式和符号比较多的笔记notion:没什么数学公式的…