【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)
贪心、分治
- 贪心(Greedy)
- 问题1:最优装载(加勒比海盗)
- 问题2:零钱兑换
- 零钱兑换的另一个例子
- 贪心注意点
- 问题3:0-1背包
- 0-1 背包 - 实例
- 一些习题
- 分治(Divide And Conquer)
- 主定理(Master Theorem)
- 问题1:最大连续子序列和
- 解法1 – 暴力出奇迹
- 暴力出奇迹 – 优化
- 解法2 – 分治
- 问题2:大数乘法
数据结构与算法笔记:恋上数据结构笔记目录
贪心(Greedy)
贪心策略,也称为贪婪策略
- 每一步都采取当前状态下最优的选择(局部最优解),从而希望推导出全局最优解
贪心的应用
- 哈夫曼树
- 最小生成树算法:Prim、Kruskal
- 最短路径算法:Dijkstra
问题1:最优装载(加勒比海盗)
贪心策略:每一次都优先选择重量最小的古董
- ① 选择重量为 2 的古董,剩重量 28
② 选择重量为 3 的古董,剩重量 25
③ 选择重量为 4 的古董,剩重量 21
④ 选择重量为 5 的古董,剩重量 16
⑤ 选择重量为 7 的古董,剩重量 9 - 根据上面的选择,最多能装载 5 个古董
import java.util.Arrays;/*** 有一天,海盗们截获了一艘装满各种各样古董的货船,每一件古董都价值连城,一旦打碎就失去了它的价值* 海盗船的载重量为 W,每件古董的重量为
【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)相关推荐
- 【恋上数据结构】动态规划(找零钱、最大连续子序列和、最长上升子序列、最长公共子序列、最长公共子串、0-1背包)
动态规划(Dynamic Programming) 练习1:找零钱 找零钱 - 暴力递归 找零钱 - 记忆化搜索 找零钱 - 递推 思考题:输出找零钱的具体方案(具体是用了哪些面值的硬币) 找零钱 - ...
- MJ恋上数据结构(第1季 + 第2季)笔记
文章转载自:https://blog.csdn.net/weixin_43734095/article/details/104847976 恋上数据结构完整笔记(第1季 + 第2季) 前言 数据结构 ...
- 2021-10-15 红黑树 概念和平衡操作理解以及与AVL对比分析 恋上数据结构笔记
文章目录 红黑树的由来 红黑树需要遵守的五大规则 红黑树与4阶B树的相互转换!! 红黑树的插入(12种情况) 红黑树的删除(3大类情况) 红黑树的平衡 以及与AVL树的性能比较 红黑树的由来 红黑树: ...
- 基数排序及其思想 C++代码实现及分析 恋上数据结构笔记
文章目录 复习梗概 算法思想 时间及空间复杂度 基数排序基础版代码 及输出结果 计数排序函数 基数排序函数 可视化输出 另一种思路 完整版代码 复习梗概 思想 如何取数字各个位位数 计数排序保证稳定性 ...
- 计数排序及其改进 C++代码实现与分析 恋上数据结构笔记
文章目录 复习梗概 算法思想 基础思想 改进空间复杂度,改进不能对负数进行排序问题 改进稳定性 计数排序时间空间复杂度 计数排序基础版 代码及输出 计数排序第一次改进版 代码及输出 计数排序终极版 代 ...
- 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记
文章目录 复习梗概 算法思想 算法复杂度分析及稳定性 如何优化? 快速排序改进版代码C++ 快速排序个人青春版代码 完整代码 复习梗概 算法思想,别的排序名字直接就能让人联想到它的算法思想,唯独快速排 ...
- 归并排序算法 C++实现与时间复杂度(考过)恋上数据结构笔记
复习梗概 画图,自己整个数组,看代码写步骤,这个对理解归并排序还是很有必要的 合并两个有序数组的merge函数写法 时间复杂度的分析方法!!! 其实我觉得去b站找个动态的步骤分解视频也是不错的复习方法 ...
- 插入排序算法 及其二分搜索优化版 C++代码实现 恋上数据结构笔记
复习梗概 文章目录 复习梗概 插入排序算法思想 插入排序时间复杂度与特性(多少,与什么有关?) 插入排序基础版 插入排序2nd优化版(优化了哪里?) !!!插入排序二分搜索优化版(优化了哪里?如何优化 ...
- 堆排序 C++代码实现及思想 排序过程输出 恋上数据结构笔记
复习梗概 文章目录 复习梗概 什么是堆思想? 堆排序算法怎么来的? 什么是下滤?代码 什么是建堆?代码 堆排序本体 代码及排序过程输出 和时间复杂度 完整代码 什么是堆思想? 最大堆:树形结构,每一个 ...
最新文章
- DFS Gym 100553J Jokewithpermutation
- 《程序开发心理学》读书笔记(二)
- 关于大型asp.net 应用系统的架构 —— 如何做到高性能高可伸缩性[转]
- MySQL学习第三章练习题
- Pandas时间差(Timedelta)
- LINK : fatal error LNK1168
- 计算图的可达矩阵MATLAB程序
- 阿里云盘——新的屠龙勇士?
- 【win10专业版】如何检测声卡是否损坏
- Vmware workstation 安装教程
- java 日期格式化工具类
- 英文论文评审意见_小弟第一篇英文论文审稿意见求助 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
- 在DialogFragment的onStop(完全不可见)时调用dismiss退出界面报错解决办法
- Vlan是什么?定义,特点超详细解析
- 不得不说/永远不回头
- plm软件试用测试报告,ANSYS 15.0系列测试报告——FLUENT Meshing 15.0
- 基于嵌入式的密码访问的门锁系统
- OpenCV学习之路
- 东芝原厂授权代理,TC358762,MIPI 转 RGB,高清分辨率,支持墨水屏
- 学习笔记8-I2C协议
热门文章
- spring cloud中gateway存在的意义是什么?
- 你见过最“变态”的CPU散热器是什么样的?
- Now, using the touch-screen smartphone in your hand
- Now that half a year has passed
- python入门——P46魔法方法:描述符(Property的原理)
- 计算机网络class5(分层结构、协议、接口、服务)
- ssis for循环容器_SSIS Foreach循环与For循环容器
- 标准C程序设计七---120
- PLSQL 连接Oracle11g (64位)
- 鼠标浮动到表格的某行 背景颜色变化[mouseover mouseout 以及mouseenter mouseleave]