算法学得好,工作不愁找。不过对于很多非数学专业的程序员来说,学好算法是一件有难度的事情,知识版块多、理论性强、技术落地复杂,付出大量精力仍不一定学得好。本课程由兼具丰富信息学竞赛辅导经验+多年大厂从业经验的老师设计并讲解,在系统化梳理算法中高阶知识框架的基础上,结合实际工业需求与编程实践,带大家在吃透高难理论的同时掌握其真正优质的应用实践。【微体系课】算法与数据结构高手养成-求职提升特训课由优库IT资源网整理发布,高清原画质。
第1章 引言 Introduction
本章介绍课程学习路径以及这门课能给大家带来什么提升
1-1 学前必看——这门课能给你什么 (08:52)
第2章 贪心 Greedy 试看10 节 | 136分钟
贪心法,看似思路简单,实则暗坑无数。更重要的是,贪心法的使用条件苛刻,且灵活度高,决定了它很难系统地学习。本章我们帮你提炼总结了贪心法的几种分类,每一类的适用场景,以及问题分析和算法设计的通用流程,让你即便遇到陌生的贪心问题,也能做到丝毫不慌,同时给后续的搜索与动态规划章节打好理论基础…
2-1 贪心不等于我全都要 (04:28)
2-2 朴素的贪心法(上)最优化策略 (19:51)
2-3 朴素的贪心法(中)构造法 (24:58)
2-4 朴素的贪心法(下)二分答案 (15:50)
2-5 朴素贪心法的实战演练 (12:21)
2-6 随机贪心法:多试几次也许会更好 (21:30)
2-7 随机贪心法的实战演练 (12:03)
2-8 图论中的贪心:实时导航系统 (09:51)
2-9 搜索中的贪心:电脑鼠走迷宫大赛 (11:13)
2-10 本章小结 (03:45)
第3章 搜索基础 Basic Searching
与贪心不同,搜索是一种“全能算法”,但是处理不好,它也可能变成“全不能”。本章我们从搜索的理论基础开始讲起,总结出搜索通用的六大要素,并且由这六大要素衍生出一套完整的算法分析与设计的思路模板,结合经典的深度优先搜索与广度优先搜索,帮你真正做到“遇题不会搜一下”。…
3-1 搜索法:看似枚举,但没那么简单 (04:11)
3-2 搜索基础理论:状态,搜索树与状态关系图 (15:10)
3-3 深度优先搜索(上):最常用的搜索方法 (23:13)
3-4 深度优先搜索(下):常见的状态扩展模型 (26:43)
3-5 深度优先搜索实战:中层领导不好当 (17:35)
3-6 广度优先搜索:用空间换时间的搜索方法 (15:03)
3-7 广度优先搜索实战:疫情传播问题 (17:08)
3-8 本章小结 (04:28)
第4章 动态规划基础 Dynamic Programming Basics
动态规划是许多人学习算法的瓶颈,被戏称为“从入门到放弃”。它的理论较为晦涩,复杂度高,且很少有人能讲明白动态规划从理论到解题之间的模糊地带——如何根据问题的条件,系统地设计算法。本章我们在讲清楚动态规划的理论知识的基础上,从庞杂的细节中提炼出一套标准的问题分析和算法设计的流程,助你“遇题有底气,做题…
4-1 动态规划DP:超越算法的思维 (06:55)
4-2 一个简单的例子:跳方格 (07:53)
4-3 DP两种模式:记忆化搜索,递推+枚举 (10:50)
4-4 DP三要素:阶段,状态,决策 (17:48)
4-5 DP两前提:最优子结构,无后效性 (15:01)
4-6 稍微复杂一点的例子:01背包和多重背包 (13:09)
4-7 DP分析流程1:划分阶段 (18:17)
4-8 DP分析流程2:定义状态 (13:24)
4-9 DP分析流程3:确定决策 (13:05)
4-10 本章小结 (05:26)
第5章 搜索进阶 Advanced Searching
在学习了搜索基础之后,相信你不难发现,搜索的潜力非常的巨大,如果优化得当,它一样可以成为性能超群的算法,甚至在工业界扮演非常重要的角色。本章我们系统地介绍搜索的多种进阶优化策略,从搜索形式的优化,到使用启发函数进行搜索状态的评估,再到如何用剪枝优化去掉非最优情况,让你学完后,能够全方位彻底地压榨搜索…
第6章 动态规划进阶 Advanced Dynamic Programming
打好动态规划的基础之后,相信大家最关心的,就是怎么才能砍瓜切菜地解决高难度问题。本章系统地介绍了动态规划的五大类常见模型,以及如何应用前面讲解的分析流程,对各类典型模型进行DP方法的设计与实现,此外,还讲解了DP的三大优化策略,并分析了他们的适用条件和实现方法,帮你啃下动态规划的最后一块硬骨头…
第7章 算法综合实战——全自动物流系统设计与实现
在学完了贪心、搜索及动态规划三大类算法之后,相信你已经跃跃欲试了。本章我们借助一个实战项目《全自动物流系统》,在用工业界的流程和标准进行规范化的基础上,对前面所学的三大类算法进行系统的,综合的实战演练。相信通过本章的项目实战,你的算法设计和落地能力,将会再上一个台阶…
第8章 堆与堆的高级变种 Heap
堆的应用极为广泛,它不仅是各种优先队列实现的基础数据结构,同时还能作为各种高级算法的辅助和优化工具。本章我们从原理、实现细节和性能分析的角度,对堆进行了全方位的解析,同时还介绍了堆用来支持特殊操作的高级变种,学完本章,相信一提到堆,你绝对可以信手拈来 …
第9章 二叉搜索树基础 Binary Search Tree
二叉搜索树是所有树形数据结构中最为重要的一种,可以说只要有数据检索的地方,都离不开二叉搜索树。经过本章的学习,你将能够熟悉并掌握二叉搜索树的全部基本操作,包括建立,插入,删除,查找,以及经典的求第K小元素的应用,并且初步了解平衡化旋转,为后续平衡二叉树以及近似平衡树的学习打好基础…
第10章 二叉搜索树的优化:平衡二叉搜索树
二叉搜索树虽好,但有可能退化,所以无论实际应用,还是考试面试,平衡二叉搜索树才是重头。本章带你学习两种经典的平衡二叉搜索树——AVL树与红黑树,从原理到实现的每个细节出发,带你彻底理解和掌握这类又快又难的高级数据结构…
第11章 平衡树的平替:近似平衡二叉树
平衡二叉树性能强大,但缺点是太复杂,如果时间有限,比如面对算法竞赛,又或者对空间要求很苛刻,不能有多余数据,怎么办?本章带你了解一类特殊的二叉搜索树——近似平衡二叉树,它们用较低的实现难度达到接近平衡二叉树的性能。学完本章,相信你能够了解这些近似平衡树各自的实现原理,性能比较,优缺点和适用场景,并且…
第12章 多维树形结构 Multi-Dimensional Tree Structures
二叉搜索树并非万能,针对特殊的应用场景往往有更好的的选择。本章介绍其他三种常见的多维树形结构——字典树,线段树和树状数组,重点在于他们的适用场景,原理,以及如何在他们的基础上进行拓展,用来处理更多更复杂的问题。学完本章后,你不仅能具备解决更多复杂数据问题的能力,还能体会到树形结构的优美与强大…
第13章 复杂链式结构 Complex Linked Structure
学完前面几章,你一定会有疑问:“数据结构难道就是各种树吗?”实则不然,各种非树形结构依旧在许多不同的应用场景中占有非常重要的地位。本章我们介绍并查集,块状链表和跳跃表三种非树形的高级数据结构,通过学习,你不仅能够掌握他们的原理,实现细节和适用场景,还能掌握更多的数据结构优化的思路,让自己的思维和眼界…
第14章 数据结构综合实战——数据库的设计与实现
经过前面章节的学习,你应该已经充分掌握了多种高级数据结构的原理,特征和实现方法。现在,就让我们来通过一个《数据库设计》的项目,来对所学的数据结构进行一个综合实战,检验一下自己对数据类问题的分析和处理的能力。本章我们依旧会按照工业界的标准来进行需求分析,模块设计,数据结构实现和测试,让你真正学以致用…
第15章 NOIP模拟赛(介于普及组和提高组之间的难度)
本章采用NOIP赛制:无提交机会,代码结束后统一提交参与评测,根据通过的数据点给分,最后会给出解题报告与备赛策略,提前练习,事半功倍。
第16章 ICPC模拟赛(介于网络预选赛和亚洲区域赛之间的难度)
本章采用ICPC赛制制定竞赛规则,提前模拟 比赛不慌。
第17章 总结 Conclusion
总结本课程的所有知识,回顾学习成果,对后续学习的策略和实战平台进行推荐
【微体系课】算法与数据结构高手养成课资源目录截图: