解决什么问题

很多技术学习者对算法和数据结构存在畏难情绪,觉得它们虚无缥缈。这门课直面这个缺口,从最基础的线性查找法讲起,带你建立对算法的直觉。你会明白算法到底有什么用,如何用代码把简单的查找和排序跑通,并学会用泛型和自定义类去测试和优化你的代码。课程覆盖了从入门到进阶的核心算法概念,包括泛型的使用、循环不变量的理解以及时间复杂度的深入分析,确保你不仅能写代码,还能写出高效、可维护的代码。

适合什么基础与学习建议

适合已经具备一定编程基础(尤其是 Java 语言基础)的学习者。如果你正在备考或者转岗,需要查漏补缺,这门课能帮你把零散的代码片段串成体系,特别是当你对“循环不变量”和“复杂度分析”这些概念卡壳时,这里会提供直接的突破点。建议优先看“线性查找法”这一周,这是建立算法思维的最佳起点;接着看“排序基础”中的选择排序和插入排序。排序是算法的核心应用,通过“换个角度实现”的作业,能逼迫你跳出惯性思维。资料包里的 PDF 包含 JDK 的下载链接,建议先根据 PDF 完成环境搭建,再跟着视频敲代码。

学完能独立做什么

学完你能独立实现线性查找法、选择排序和插入排序,熟练运用泛型和 Comparable 接口处理带约束的排序,掌握时间复杂度分析方法,并独立编写测试代码验证算法性能。你将能够独立完成简单的算法设计和实现,理解常见排序算法的原理和适用场景,并能根据实际需求选择最合适的算法。作业“换个角度实现选择排序法”是重点,它要求你跳出默认思路,用不同视角重构代码,这才是真正掌握算法的关键。同时,资料包提供了丰富的学习资源,包括视频讲解、PDF 文档和编程环境搭建指南,帮助你系统地学习算法与数据结构。

课程目录

第1周 线性查找法
第1章欢迎大家来到算法与数据结构的世界
1-1 欢迎大家来到算法与数据结构的世界.mp4 52.95M
1-2 学习算法和数据结构到底有没有用?.mp4 133.77M
1-3 更多课程学习注意事项.mp4 25.01M
1-4 课程编程环境的搭建.mp4 71.25M
1-5 JDK 的国内下载链接 .pdf 130.00kb
第2章线性查找法
2-1 什么是算法.mp4 29.49M
2-10 本章小结.mp4 4.13M
2-2 最简单的算法:线性查找法.mp4 8.73M
2-3 实现线性查找法.mp4 97.30M
2-4 使用泛型.mp4 71.71M
2-5 使用自定义类测试我们的算法.mp4 76.84M
2-6 循环不变量.mp4 41.69M
2-7 简单的复杂度分析.mp4 56.82M
2-8 常见的时间复杂度.mp4 47.33M
2-9 测试算法性能.mp4 83.84M
第2周 排序基础
第1章选择排序法
1-1 最简单的排序算法:选择排序法.mp4 30.23M
1-2 实现选择排序法.mp4 65.34M
1-3 使用带约束的泛型.mp4 41.11M
1-4 使用 Comparable 接口.mp4 74.40M
1-5 选择排序法的复杂度分析.mp4 204.13M
1-6 一个作业:换个角度实现选择排序法.mp4 4.84M
1-7 换个角度实现选择排序法,作业分析.pdf 109.92kb
第2章插入排序法
2-1 插入排序法.mp4 28.51M
2-2 实现插入排序法.mp4 80.40M
2-3 插入排序法的一个小优化.mp4 110.61M
2-4 插入排序法的特性.mp4 77.24M
2-5 一个作业:换个角度实现插入排序法.mp4 4.43M
2-6 换个角度实现插入排序法,作业分析.jpg 462.23kb
2-7 本章小结.mp4 6.58M
第3周 数据结构基础:动态数组,栈和队列
第1章数据结构基础:不要小瞧数组
1-1 为什么要学习数据结构.mp4 40.06M
1-10 均摊复杂度和防止复杂度的震荡.mp4 47.87M
1-2 使用 Java 中的数组.mp4 32.15M
1-3 二次封装属于我们自己的数组.mp4 51.01M
1-4 向数组中添加元素.mp4 98.19M
1-5 数组中查询元素和修改元素.mp4 58.54M
1-6 数组中的包含,搜索和删除.mp4 93.74M
1-7 泛型类.mp4 134.91M
1-8 动态数组.mp4 95.28M
1-9 简单的复杂度分析.mp4 25.77M
第2章栈和队列
2-1 栈和栈的应用:撤销操作和系统栈.mp4 21.91M
2-10 作业解析:不浪费一个空间的循环队列.jpg 426.86kb
2-11 作业解析:没有 size 成员变量的循环队列.jpg 451.08kb
2-12 作业:双端队列.mp4 4.52M
2-13 作业解析:实现双端队列.jpg 440.68kb
2-14 Java 程序员,别用 Stack.jpg 552.92kb
2-2 栈的基本实现.mp4 118.68M
2-3 栈的另一个应用:括号匹配.mp4 94.81M
2-4 关于 Leetcode 的更多说明.mp4 96.20M
2-5 数组队列.mp4 99.35M
2-6 循环队列.mp4 44.43M
2-7 循环队列的实现.mp4 98.43M
2-8 数组队列和循环队列的比较.mp4 83.82M
2-9 作业:换个方式实现队列?.mp4 2.91M
第3章习题补充:栈和队列其他习题
3-1 作业:用栈实现队列和用队列实现栈.mp4 59.40M
3-2 作业解析:用队列实现栈.jpg 519.93kb
3-3 作业解析:用栈实现队列.jpg 419.73kb
3-4 更多栈和队列的问题推荐.jpg 182.94kb
第4周 动态数据结构基础:链表
1-1 什么是链表.mp4 26.36M
1-2 在链表中添加元素.mp4 42.82M
1-3 使用链表的虚拟头结点.mp4 18.81M
1-4 链表的遍历,查询和修改.mp4 32.67M
1-5 从链表中删除元素.mp4 30.70M
1-6 使用链表实现栈.mp4 30.54M
1-7 带有尾指针的链表:使用链表实现队列.mp4 54.67M
1-8 图文节-慕课网就业班.pdf 171.17kb
2-1 Leetcode中和链表相关的问题.mp4 43.40M
2-10 更多和链表相关的话题.mp4 14.49M
2-2 测试自己的Leetcode链表代码.mp4 25.52M
2-3 递归基础与递归的宏观语意.mp4 29.91M
2-4 链表与递归.mp4 33.27M
2-5 递归运行的机制:递归的微观解读.mp4 41.74M
2-6 递归算法的调试.mp4 42.27M
2-7 作业:链表的递归实现.mp4 2.44M
2-9 链表添加元素递归方法的常见问题解析.mp4 32.83M
3-1 链表最经典的问题:翻转链表.mp4 16.23M
3-2 翻转链表的非递归实现.mp4 18.05M
3-3 翻转链表的递归实现.mp4 23.86M
3-4 更多链表问题推荐.mp4 16.48M
第5周 归并排序法
第1章归并排序法
1-1 归并排序法的原理.mp4 23.66M
1-2 归并过程.mp4 27.59M
1-3 实现归并过程.mp4 88.76M
1-4 实现归并排序法.mp4 69.32M
1-5 归并排序法的微观解读.mp4 77.46M
1-6 作业:在程序上调试跟踪归并排序法.mp4 26.03M
1-7 在程序上调试跟踪归并排序法.jpg 512.85kb
1-8 归并排序法的复杂度分析.mp4 68.63M
第2章更多关于归并排序法
2-1 在有序数组,让归并排序法成为 O(n) 算法.mp4 51.90M
2-10 归并排序法小结.mp4 15.01M
2-2 使用插入排序法优化归并排序法.mp4 71.09M
2-3 归并排序法的内存操作优化.mp4 74.06M
2-4 自底向上的归并排序.mp4 26.26M
2-5 实现自底向上的归并排序.mp4 95.71M
2-6 作业:使用插入排序法优化自底向上的归并排序.mp4 1.99M
2-7 使用插入排序法,优化自底向上的归并排序.jpg 590.04kb
2-8 数组的逆序对数量问题.mp4 26.32M
2-9 快速求解数组的逆序对数量.mp4 92.61M
第6周 快速排序法
第1章快速排序法
1-1 快速排序法的原理.mp4 28.24M
1-10 作业解析:用算法生成一个特殊的测试用例.jpg 646.06kb
1-2 Partition.mp4 28.38M
1-3 第一版快速排序法.mp4 95.12M
1-4 作业:深入理解快速排序的递归过程.mp4 6.09M
1-5 作业解析:使用插入排序法优化快速排序.jpg 705.30kb
1-6 第一版快速排序法的问题.mp4 33.75M
1-7 为快速排序添加随机化.mp4 73.90M
1-8 两个作业:深入玩转快速排序.mp4 21.55M
1-9 作业解析:只创建一个 Random 类.jpg 601.04kb
第2章更多关于快速排序法
2-1 快速排序算法还有问题.mp4 27.80M
2-10 和 Select K 相关的三个问题.jpg 478.97kb
2-11 快速排序小结.mp4 16.16M
2-2 双路快速排序法.mp4 26.66M
2-3 实现双路快速排序法.mp4 73.49M
2-4 快速排序算法的复杂度分析.mp4 29.97M
2-5 三路快速排序法.mp4 26.10M
2-6 实现三路快速排序法.mp4 92.42M
2-7 作业:一道面试问题,Sort Colors.mp4 17.38M
2-8 Leetcode 75:Sort Colors.jpg 618.55kb
2-9 作业:Select K 问题.mp4 32.73M
算法与数据结构体系课/
1-1 欢迎大家来到算法与数据结构的世界.mp