数据结构与算法(C++)– 贪婪算法(Greedy algorithm)
贪婪算法(Greedy algorithm)
1、基础
定义:贪婪算法分阶段地工作,在每一阶段,选择在当前最好的决策,不考虑将来的后果。所以一般只能得到局部最优而不是全局最优。
贪婪算法:
- Dijkstra 算法
- Prim 算法
- Kruskal 算法
- 哈夫曼编码
2、Dijkstra 算法
原理:
- 把起点的 dv 初始化为0,其它的为∞,并设置所有点的最短路径都是不知道的
- 声明起点最短路径已知,根据权值更新邻接点的 dv 和 pv
- 从未知最短路径的点中,选择 dv 最小的值,更新邻接点的 dv 和 pv
- 重复步骤 3 直到所有点的最短路径都已知
伪代码:
3、哈夫曼编码
原理:一棵树的权等于它的树叶出现的频率的和,哈夫曼编码就是要使得树的权最小。每一个元素都可以看成是一棵树,任意选取最小权的两颗树T1和T2,组合成新的树。不断组合,直到所有的节点都被包含在一棵树中。
……….
数据结构与算法(C++)– 贪婪算法(Greedy algorithm)相关推荐
- 贪婪算法-Greedy algorithm
贪婪算法(greedy algorithm) WIKI A greedy algorithm is an algorithmic paradigm that follows the problem s ...
- 数据结构与算法(基于<algorithm>)
algorithm算法库 一.排序算法(sort.stable_sort.partial_sort.nth_element) 1.代码示例 2.运行结果 二.查找算法(find.find_if.cou ...
- 数据结构与算法--递归(Recursion Algorithm)
什么是递归算法? 把规模大的.较难解决的问题变成规模较小的.易解决的同一问题.规模较小的问题又变成规模更小的问题,并且小到一定程度可以直接得出它的解(基本问题),从而得到原来问题的解. 哪时候用递归算 ...
- 贪心(Greedy Algorithm)
贪心(Greedy Algorithm) 贪心 44.通配符匹配 45.跳跃游戏 II 55.跳跃游戏 122.买卖股票的最佳时机II 134.加油站 135.分发糖果 179.最大数 277.搜寻名 ...
- 数据结构与算法--贪婪算法2
近似装箱问题 解决装箱问题(bin packing problem)的算法.也可以用贪婪算法来完成 给定N项物品,大小为s1,s2,s3-sn,所有的大小满足0 < si < 1.问题是要 ...
- 动态规划(Dynamic Programming)与贪心算法(Greedy Algorithm)
文章目录 动态规划算法(Dynamic Programming) 动态规划问题的属性 应用实例:最长公共子序列问题(Longest Common Subsequence, LCS) 贪心算法(Gree ...
- 数据结构与算法(Python)– 回溯法(Backtracking algorithm)
数据结构与算法(Python)– 回溯法(Backtracking algorithm) 1.回溯法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条 ...
- 贪婪算法(greedy Algorithm)
贪婪算法的应用: 相关算法练习题: LeetCode股票买卖的最佳时机 LeetCode判断子序列 LeetCode 分发饼干 LeetCode跳跃游戏 LeetCode加油站 一.简单调度问题: 给 ...
- 数据结构与算法 Big O 备忘录与现实
不论今天的计算机技术变化,新技术的出现,所有都是来自数据结构与算法基础.我们需要温故而知新. 算法.架构.策略.机器学习之间的关系.在过往和技术人员交流时,很多人对算法和架构之间的关系感到不可理解,算 ...
最新文章
- Spring为什么建议构造器注入?
- Python可视化(matplotlib)图像自定义图例(Legend)
- Docker入门系列8
- Android Studio 第六十五期 - Android业务组件库
- 2020 我的C++的学习之路
- ZetCode Spring 教程
- Python获取文件夹下的所有文件名
- 中国凝血测试耗材行业市场供需与战略研究报告
- 用python进行人脸识别
- git merge/git rebase分支合并
- Wannacry勒索病毒样本分析
- C#读取windows注册表键值的代码
- 网线水晶头制作的线序
- 线上3D产品展示的方式
- html跳转到关注的微信公众号,手机浏览器一键跳转微信公众号关注的方法
- 介绍一个java的Excel处理工具
- 手把手教你如何高效落地单项目管理 | 一看既会
- LeetCode455分发饼干
- RuoYi若依打包发布与部署
- c语言变量名拼音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的...