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





