一、贪心(Greedy)
1、什么是贪心策略?经典应用有哪些(至少说两个)?
-
贪心策略,也称为贪婪策略。
-
每一步都采取当前状态下最优的选择(局部最优解),从而希望推导出全局最优解。
-
贪心的应用:哈夫曼树、最小生成树(Prim、Kruskal)、最短路径算法(Dijkstra)
![](https://img.haomeiwen.com/i13946897/3a2655180e803d66.png)
2、贪心策略 - 练习 1 - 最佳装载问题(加勒比海盗)?
- 贪心策略:每一次都优先选择重量最小的古董
![](https://img.haomeiwen.com/i13946897/3650c6b4ebc1703a.png)
3、 贪心策略 - 练习 2 - 零钱兑换?
- 贪心策略:每一次都优先选择面值最大的硬币
![](https://img.haomeiwen.com/i13946897/9298fa614d36cad8.png)
4、上述零钱兑换算出来的一定是最优解吗?(贪心存在的问题?)
- 不一定是最优解:贪心算法只求局部最优,不能保证全局最优。
![](https://img.haomeiwen.com/i13946897/e06841ce6886a07d.png)
5、 总结贪心算法的问题?
![](https://img.haomeiwen.com/i13946897/87769bd24999e93f.png)
6、 贪心策略 - 练习 3 - 零一背包问题?
![](https://img.haomeiwen.com/i13946897/42b5f9b1ae1ba22a.png)
![](https://img.haomeiwen.com/i13946897/edd7c843c394115f.png)
![](https://img.haomeiwen.com/i13946897/d810f56948df9213.png)
7、 贪心策略作业
![](https://img.haomeiwen.com/i13946897/324548cfbf22f6e1.png)
二、分治(Divide And Conquer)
1、分治的核心思想是什么?在排序算法中典型应用是哪两个?
- 分治:也就是
分而治之
- 典型:归并排序、快速排序
![](https://img.haomeiwen.com/i13946897/6a29a281b6d37332.png)
2、为什么分治之后,会优化提升归并排序、快速排序的时间复杂度?
![](https://img.haomeiwen.com/i13946897/55599b54663ce016.png)
- 在 day16 的1:34:00 可以多听几遍
3、分治策略的主定理?
![](https://img.haomeiwen.com/i13946897/5a4654e187d8ff48.png)
4、理解什么是子序列?什么是连续子序列?(这些概念在算法中经常遇到)
![](https://img.haomeiwen.com/i13946897/d9617b17c8cde3c5.png)
![](https://img.haomeiwen.com/i13946897/c9cd8d7c30e69fa8.png)
5、分治 - 练习1 - 最大连续子序列和
![](https://img.haomeiwen.com/i13946897/472fd91b3dee1d7b.png)
6、分治-练习 1-解法 1 暴力出奇迹
- 感觉核心点在于 - 分成了 begin 和 end 两个指针,让问题非常清晰的呈现出来
![](https://img.haomeiwen.com/i13946897/2f3071c51b501376.png)
7、分治-练习 1-解法 1 暴力法优化
![](https://img.haomeiwen.com/i13946897/a3af8d136be6dd60.png)
8、使用分治的解法?
![](https://img.haomeiwen.com/i13946897/890757436588ab48.png)
![](https://img.haomeiwen.com/i13946897/7c84b59e29991583.png)
网友评论