美文网首页数据结构与算法
数据结构第二季 Day16 贪心、分治

数据结构第二季 Day16 贪心、分治

作者: 望穿秋水小作坊 | 来源:发表于2021-10-22 16:19 被阅读0次

一、贪心(Greedy)

1、什么是贪心策略?经典应用有哪些(至少说两个)?

  • 贪心策略,也称为贪婪策略。

  • 每一步都采取当前状态下最优的选择(局部最优解),从而希望推导出全局最优解。

  • 贪心的应用:哈夫曼树、最小生成树(Prim、Kruskal)、最短路径算法(Dijkstra)

image.png

2、贪心策略 - 练习 1 - 最佳装载问题(加勒比海盗)?

  • 贪心策略:每一次都优先选择重量最小的古董
image.png

3、 贪心策略 - 练习 2 - 零钱兑换?

  • 贪心策略:每一次都优先选择面值最大的硬币
image.png

4、上述零钱兑换算出来的一定是最优解吗?(贪心存在的问题?)

  • 不一定是最优解:贪心算法只求局部最优,不能保证全局最优。
image.png

5、 总结贪心算法的问题?

image.png

6、 贪心策略 - 练习 3 - 零一背包问题?

image.png image.png image.png

7、 贪心策略作业

image.png

二、分治(Divide And Conquer)

1、分治的核心思想是什么?在排序算法中典型应用是哪两个?

  • 分治:也就是分而治之
  • 典型:归并排序、快速排序
image.png

2、为什么分治之后,会优化提升归并排序、快速排序的时间复杂度?

image.png
  • 在 day16 的1:34:00 可以多听几遍

3、分治策略的主定理?

image.png

4、理解什么是子序列?什么是连续子序列?(这些概念在算法中经常遇到)

image.png image.png

5、分治 - 练习1 - 最大连续子序列和

image.png

6、分治-练习 1-解法 1 暴力出奇迹

  • 感觉核心点在于 - 分成了 begin 和 end 两个指针,让问题非常清晰的呈现出来
image.png

7、分治-练习 1-解法 1 暴力法优化

image.png

8、使用分治的解法?

image.png image.png

相关文章

  • 数据结构第二季 Day16 贪心、分治

    一、贪心(Greedy) 1、什么是贪心策略?经典应用有哪些(至少说两个)? 贪心策略,也称为贪婪策略。 每一步都...

  • python数据结构教程 Day7

    python数据结构教程 Day7 本节重点 分治思想 贪心策略 动态规划 一、分治法 由递归三定律体现: 基本结...

  • 29.算法入门

    算法与数据结构基础 一、基础算法思想二分: 递推: 枚举: 递归: 分治: 贪心: 试探: 模拟: 二、简单数据结...

  • 分治法,动态规划及贪心算法区别

    原文:分治法,动态规划及贪心算法区别 1.分治法 分治法(divide-and-conquer):将原问题划分成n...

  • 一位算法工程师的自我修养

    数据结构与算法 基本算法思想动态规划贪心算法回溯算法分治算法枚举算法 算法基础 时间复杂度 空间复杂度 最大复杂度...

  • 贪心 分治 动态规划

    一、贪心算法 参考算法(一):贪心[https://zhuanlan.zhihu.com/p/25769975] ...

  • 算法--策略-贪心分治

    贪心 贪心策略, 也叫作贪婪策略 每一步都采取当前状态下最优解, 从而推导出全局最优解 应用, 哈夫曼树, 最小生...

  • 「数据结构进阶」例题之离线分治算法

    0x40「数据结构进阶」例题 CDQ分治 CDQ分治,能够将动态问题转化为静态问题求解。它将操作的时间顺序作为分治...

  • 王道程序员求职宝典(九)基本算法及链表

    分治法,动态规划与贪心算法 分治法特征分解解决合并递归:自顶向下 动态规划要素最优子结构重叠子问题递推:自底向上步...

  • 常用几种算法

    贪心,分治,回溯,动态规划四种算法。 贪心算法 场景:我们有m个糖果和n个孩子,现在要把糖果分给这些孩子吃,但是糖...

网友评论

    本文标题:数据结构第二季 Day16 贪心、分治

    本文链接:https://www.haomeiwen.com/subject/phncaltx.html