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

贪心算法(简单易懂,考研复试上机知识点)

贪心算法简介:
 

贪心算法,思路也是非常简单的,每一步总是做出在当前看来最好的选择
贪心算法的核心就是无后效性,也就是说当前的决策不会影响之后的决策,是独立的。
dp(动态规划)是有后效性的,当前的决策会影响到之后的决策,是有关联的。
 

下面举例对比:
 

01背包问题。


有一个背包,背包容量是M=30。有3个物品,要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。

我们制定贪心的策略总共有3种:
1. 每次挑选重量最小的放入背包
2. 每次挑选价值最大的放入背包
3. 每次挑选单位重量价值最大的放入背包

我们试着来证明这三种可行:
第一种:
物品:A B C
重量 10 30 10
价值 20 80 20

每次挑选重量最小,AC放入背包后,B就不能放入背包了,放入AC的价值为40,而选择放入B的价值为80,明显不成立

第二种:和第一种类似

第三种:
物品:A B C
重量 10 30 10
价值 10 30 10
每次挑选单位重量价值最大,ABC的单位重量价值都一样,无法选择,因此也不成立
 

结论:
我们不能使用贪心算法,但是如果物品是可拆分的话,那么我们就可以求最大最小问题,因为当前的选择不会影响到其他物品的选择,是独立的。

所以我们应该使用动态规划,选择每个物品都会影响到其它物品的选择,是有后效性的,不是独立的。


http://www.kler.cn/a/228652.html

相关文章:

  • Ubuntu 24.04 LTS 更改软件源
  • vulnhub靶机(ReconForce)
  • 20250119面试鸭特训营第27天
  • 网络编程-UDP套接字
  • 《自动驾驶与机器人中的SLAM技术》ch4:基于预积分和图优化的 GINS
  • Rust实现内网穿透工具:从原理到实现
  • 保护个人信息安全,避免成为“互联网中的裸泳者”
  • 代码随想录算法训练营第27天| 39. 组合总和、40.组合总和II、131.分割回文串
  • 教师培训内容有哪些方面 本体知识和能力要求
  • 19.HarmonyOS App(JAVA)依赖布局DependentLayout使用方法
  • 关于v8垃圾回收机制以及与其相关联的知识点--还没整理版本
  • 云数据库RDS云监控
  • QT自用,勿点
  • EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读
  • 免重启解决docker No chain/target/match by that name 免重启解决方案
  • STM32F407移植OpenHarmony笔记7
  • [经验] 月字旁一个卢念什么 #职场发展#媒体#微信
  • 【开源精选导航】GitHub-Chinese-Top-Charts:一榜在手,优质中文项目轻松找寻
  • 通过Navicat for MySQL排查sql语句错误
  • 问题:下列哪些属于历史文化资源的特征( ). #学习方法#学习方法
  • linux 05重定向和管道管理
  • 如何使用VS Code编写小游戏并实现公网游玩本地游戏【内网穿透】
  • vue-3d-loader
  • Leetcode 3030. Find the Grid of Region Average
  • MySQL分区的优缺点
  • 哪些骨传导蓝牙立体声耳机好?骨传导蓝牙立体声耳机高性价比推荐