贪心算法

贪心算法 是一类构造性 算法,它在求解最优化问题的过程中始终只做局部最优的选择 ,并且不在以后对已经做出的选择进行回溯或修改 。使用贪心算法需要证明局部最优解 等于全局最优解。

贪心可以说是算法的基础,几乎所有算法都蕴含了贪心的思想。同时,贪心更多是一种思想而不是具体的算法,且常常与别的算法配合使用,但也有如反悔贪心这种易单独出现的较为固定的套路,实际训练中更多以多刷题总结经验为主,这里重点讲解一下反悔贪心。

知识点

  • 贪心算法不能保证对所有问题都得到全局最优,除非你只是用于骗分,否则必须进行验证
  • 在内容是无序的时候,我们常常会进行一下排序之后进行贪心
  • 思考贪心时往往先从直觉出发,然后通过反证法证明没有解法更优或者可以通过反悔贪心进行修正

反悔贪心

反悔贪心 (也称为可反悔的贪心、反悔贪心算法)是一种改进的贪心算法策略,它在传统贪心算法的基础上增加了"反悔"机制,从而在某些问题上能得到更优的解。核心思想是传统贪心算法每一步都做出当前最优选择,且不可更改 。而反悔贪心允许我们在后续步骤中撤销之前的选择,替换为更优的决策,从而修正可能产生的局部最优错误。

实际运用中通常将当前的最优解先当作全局最优解,且使用优先队列 记录做过的选择,当之后有更好的选择时,替换当前队列中最不优的操作。

相关推荐
海上小飞龙3 小时前
【KMP算法-下篇】同一道题:Java 库函数 2600 微秒,手写 KMP 16 微秒
java·开发语言·算法
青少儿编程课堂3 小时前
后缀自动机解析:本质不同子串与最长重复片段统计
c++·python·算法·bfs·信息学竞赛
朝朝辞暮i3 小时前
C++ 第 12 课:局部变量、作用域、变量生命周期
开发语言·c++·算法
乐迪信息5 小时前
港口船舶逆行怎么管?AI防爆摄像机搭载智能检测算法
大数据·人工智能·深度学习·算法·计算机视觉
Sirens.6 小时前
Java并发锁详解:六类锁策略与 synchronized 底层原理
java·前端·算法
和裕6 小时前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
tangguofeng7 小时前
不带头结点的链队操作集(不含InitFlag)(C语言版)
算法
苏打豆8 小时前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人
蛋蛋的就会顺顺的8 小时前
hot100——矩阵
java·数据结构·算法·leetcode·力扣
老歌老听老掉牙8 小时前
麻花钻切屑形态演变的力学机制与临界条件分析
python·算法·钻头