算法基础是很多人转行或跳槽时绕不过去的一道坎。市面上的算法课不少,但真正适合零基础、又能同时兼顾 Python 和 Java 两条路线的并不多。这套九章算法基础班的价值在于:它把数据结构与算法的核心内容用两种语言各讲一遍,让你在理解思路的同时,也能落到具体语言的写法上。如果你之前学算法时总是卡在"看得懂伪代码、写不出真代码",这门课正好补上这一段。
它解决的是哪个工作场景的问题
最直接的场景就是面试和笔试里的算法题。栈、队列、链表、二叉树、递归、深度优先与宽度优先遍历,这些是技术面试中反复出现的基础题型,也是很多人在白板上写代码时最容易露怯的地方。课程从这些基础结构切入,讲的不是偏门技巧,而是反复会被考到的通用内容。另一个场景是日常开发中的逻辑训练:当你需要处理嵌套结构、做层级遍历、或者优化一段循环逻辑时,对数据结构的直觉会直接影响代码质量。这门课不是让你刷几百道题,而是帮你把底层概念理清楚,之后自己刷题时知道每一步在做什么。
适合什么基础,建议先看哪几块
它面向的是算法零基础或基础不牢的人,前提是你能写基本的程序——变量、循环、函数这些要会,Python 或 Java 至少熟悉其中一门。两种语言都讲,但你不必两门都学,选自己工作中用得上的那门跟下去即可,另一门当作对照参考。建议的观看顺序是先看栈和队列这一块,因为这两个结构最直观,能帮你建立"数据结构到底在解决什么问题"的感觉;接着看二叉树相关的内容,包括递归、深度优先和宽度优先遍历。递归是很多人第一个真正的思维门槛,放在二叉树里讲比单独讲更容易理解。函数调用栈那一节建议不要跳过,它解释了递归在底层是怎么运行的,看懂了后面写递归会顺很多。
学完能独立做什么,资料怎么配合练习
跟完之后,你应该能独立完成这几件事:用选定的语言手写一个栈或队列,并说清楚它和数组、链表的区别;独立写出二叉树的前序、中序、后序和层序遍历;面对一个可以用递归拆解的问题时,能自己画出调用过程并写出代码。这些能力是后续学习更复杂算法和刷题的基础。资料方面,视频和配套文档是互补的:文档适合在看视频前快速过一遍概念,视频里的推导过程需要跟着敲一遍代码,不要只看不写。每看完一节,建议自己在本地把示例代码重新实现一次,再找两三道同类型的简单题练手,检验是否真的理解,而不是记住了答案。练习量不用大,但每一道都要能讲清楚思路,这比刷题数量更重要。
课程目录42 集
- 📁 17 第十七章【互动】栈和队列(Java 语言) 17 第十七章【互动】栈和队列(Java 语言)文档.png [493.5 KB] 17 03 Java-队列及其实现.mp4 [30.7 MB] 17 01 Java-栈及其实现.mp4 [24.6 MB] 17 02 Java-函数调用栈.mp4 [19.2 MB]
- 📁 21 第二十一章【直播】二叉树、二叉树的宽度与深度优先遍历,递归 21 第二十一章【直播】二叉树、二叉树的宽度与深度优先遍历,递归资料.png [493.5 KB] 21 二叉树、二叉树的宽度与深度优先遍历,递归.mp4 [267.9 MB]
- 📁 20 第二十章【直播】栈和队列 Stack & Queue 20 第二十章【直播】栈和队列 Stack & Queue说明.png [493.5 KB] 20 栈和队列 Stack & Queue.mp4 [273.3 MB]
- 📁 23 第二十三章【互动】手把手带写代码——栈和队列(Java 语言) 📁 12 第十二章【互动】手把手带写代码——字符串(Python 语言) 12 04 【基础班】1819-PYTHON.mp4 [14.4 MB] 12 01 【基础班】1781-PYTHON.mp4 [8.9 MB] 12 03 【基础班】958-PYTHON.mp4 [19.7 MB] 12 02 【基础班】1784-PYTHON.mp4 [11.6 MB] 23 第二十三章【互动】手把手带写代码——栈和队列(Java 语言)文档.png [493.5 KB] 23 01 【基础班】492-java.mp4 [18.8 MB] 23 02 【基础班】541-java.mp4 [19.6 MB] 23 04 【基础班】575-java.mp4 [39.4 MB]
- 📁 18 第十八章【互动】二叉树的遍历方式(Python 语言) 18 第十八章【互动】二叉树的遍历方式(Python 语言)资料.png [493.5 KB] 18 12 python-练习题二.mp4 [16.4 MB] 18 14 python-总结.mp4 [1.8 MB] 18 09 python-什么是递归.mp4 [11.9 MB] 18 08 python-二叉树的遍历方式.mp4 [20.0 MB] 18 11 python-递归的时间复杂度.mp4 [30.9 MB] 18 05 python-函数自己调用自己会发生什么?.mp4 [13.4 MB] 18 10 python-递归三要素.mp4 [16.5 MB] 18 01 python-本节重点和上节回顾2.mp4 [7.1 MB] 18 07 python-修改报错的代码.mp4 [21.7 MB] 18 04 python-如何做深度优先遍历.mp4 [18.3 MB] 18 03 python-如何创建一棵二叉树.mp4 [19.8 MB] 18 02 python-什么是树?二叉树的定义.mp4 [19.6 MB] 18 13 python-练习题三.mp4 [23.0 MB] 18 06 python-为什么前面的代码会报错?.mp4 [8.7 MB]
- 📁 07 第七章【互动】String、面向对象、Reference、数据结构(Java 语言) 07 第七章【互动】String、面向对象、Reference、数据结构(Java 语言)说明.png [493.5 KB] 07 Java-Reference-变量赋值和函数传参.mp4 [22.2 MB] 07 Java-Reference-空引用null.mp4 [16.8 MB] 07 新Java-面向对象的基本特性之封装.mp4 [34.2 MB] 07 Java-Reference-基本数据类型变量和引用.mp4 [31.3 MB] 07 新Java-String及其常用操作.mp4 [12.0 MB] 07 新Java-初识类和对象.mp4 [15.3 MB] 07 Java-Reference-数组和字符串.mp4 [31.9 MB] 07 新Java-函数的定义.mp4 [18.2 MB] 07 Java-数据结构定义及ArrayList.mp4 [36.4 MB] 07 Java-Reference-Java的内存模型.mp4 [26.0 MB] 07 新Java-构造函数.mp4 [49.7 MB] 07 新Java-真题讲解 String to int.mp4 [20.8 MB] 07 新Java-函数的调用.mp4 [25.2 MB] 07 新Java-真题讲解 Valid palindrome.mp4 [46.7 MB] 07 新Java-field和method的修饰符.mp4 [50.9 MB]
- 📁 26 第二十六章【互动】二叉搜索树(Python 语言) 26 07 python-BST的基本操作之插入.mp4 [36.9 MB] 26 08 python-BST的基本操作之查找.mp4 [13.2 MB] 26 12 26python-总结.mp4 [1.8 MB] 26 03 python-分层遍历.mp4 [43.6 MB] 26 09 python-BST的时间复杂度和空间复杂度.mp4 [7.6 MB] 26 05 python-练习二.mp4 [25.5 MB] 26 02 python-宽度优先遍历的实现过程.mp4 [35.8 MB] 26 10 python-平衡BST的应用.mp4 [2.4 MB] 26 11 python-练习三和四.mp4 [47.3 MB] 26 01 python-本节重点和上节回顾.mp4 [12.2 MB] 26 04 python-练习一.mp4 [16.2 MB] 26 06 python-什么是BST.mp4 [7.9 MB]
- 📁 14 第十四章【互动】手把手带写代码——链表(Python 语言) 14 03 【基础班】228-python.mp4 [5.7 MB] 14 01 【基础班】219-python.mp4 [12.3 MB] 14 02 【基础班】452-python.mp4 [9.1 MB] 14 04 【基础班】170-python.mp4 [21.5 MB]
- 📁 06 第六章【互动】列表、元组、字符串与引用(Python 语言) 06 python-修改引用VS修改对象.mp4 [23.8 MB] 06 python-内存模型.mp4 [25.7 MB] 06 python-引用的第三个例子.mp4 [20.2 MB] 06 python-练习一.mp4 [27.4 MB] 06 python-List的增删改查-2.mp4 [35.9 MB] 06 python-总结.mp4 [5.6 MB] 06 python-本节重点和上节回顾.mp4 [6.0 MB] 06 python-元组.mp4 [10.1 MB] 06 python-引用的第一个例子和第二个例子.mp4 [14.3 MB] 06 python-List的增删改查-1.mp4 [27.1 MB] 06 python-String的介绍.mp4 [46.9 MB] 06 python-String的基本操作.mp4 [11.9 MB] 06 python-什么是数据结构.mp4 [5.6 MB] 06 python-列表生成器.mp4 [7.9 MB]
- 📁 00【课件资料】九章算法基础班 Python+Java 源码+pdf.exe [47.3 MB]
- 📁 02 第二章【互动】零基础找CS工作,该如何准备?(Java 语言) 02 Java-班班有话说.mp4 [416.0 KB] 02 Java-变量命名风格.mp4 [14.3 MB] 02 Java-变量.mp4 [8.3 MB] 02 Java-简历大揭秘.mp4 [43.1 MB] 02 Java-int型变量运算.mp4 [25.3 MB] 02 Java-面试知识点.mp4 [9.9 MB] 02 Java-声明变量.mp4 [14.3 MB] 02 Java-简历知识点.mp4 [10.5 MB] 02 Java-面试大揭秘.mp4 [22.6 MB] 02 Java-Java课程安排及课前准备.mp4 [57.7 MB] 02 Java-变量命名风格 —— 牛逼程序员的敲门砖.mp4 [34.7 MB] 02 Java-编程语言中的变量.mp4 [49.9 MB] 02 Java-编程语言.mp4 [10.9 MB]
- 📁 40 第四十章【互动】手把手带写代码——排序(Java 语言) 逆序对.mov [1.8 GB] 整数排序快排.mov [1.6 GB] 颜色分类.mov [825.6 MB] 整数排序归并.mov [2.1 GB]
- 📁 31 第三十一章【互动】哈希 Hash 31-5 实现属于我们自己的哈希表.mp4 [111.4 MB] 31-7 哈希表更复杂的动态空间处理方法.mp4 [122.3 MB] 31-6 哈希表的动态空间处理与复杂度分析.mp4 [135.8 MB] 31-4 链地址法 Seperate Chaining.mp4 [29.2 MB] 31-8 更多哈希冲突的处理方法.mp4 [21.6 MB] 31-2 哈希函数.mp4 [59.9 MB] 31-3 Java中的hashCode方法.mp4 [132.6 MB] 31-1 哈希表基础.mp4 [100.6 MB]
- 📁 05 第五章【直播】CS 工作介绍,算法基础知识 05 CS 工作介绍,算法基础知识.mp4 [278.2 MB]
- 📁 38 第三十八章【互动】排序队列 38-3作业:使用优先队列解决 Select K 问题(泉州大白网络科技).mp4 [15.3 MB] 38-2Top K 问题(泉州大白网络科技).mp4 [81.7 MB] 38-5使用快排思想和优先队列解决 Top K 问题的比较.mp4 [45.6 MB] 38-4使用 Java 中的 PriorityQueue(泉州大白网络科技).mp4 [85.3 MB] 38-1基于堆的优先队列(泉州大白网络科技).mp4 [43.0 MB] 38-6和堆相关的更多话题和广义队列(泉州大白网络科技).mp4 [75.2 MB]
- 📁 16 第十六章【互动】栈和队列(Python 语言) 16 04 16 python-队列.mp4 [25.8 MB] 16 01 16 python-栈.mp4 [17.0 MB] 16 03 16 python-栈在操作系统中的应用.mp4 [44.1 MB] 16 05 16 python-队列的实际应用及总结.mp4 [7.3 MB] 16 02 16 python-栈的练习题.mp4 [18.8 MB]
- 📁 19 第十九章【互动】二叉树的遍历方式(Java 语言) 19 01 Java-什么是二叉树.mp4 [28.3 MB] 19 07 Java-Maximum depth of binary tree.mp4 [22.7 MB] 19 05 Java-递归的复杂度分析.mp4 [23.6 MB] 19 03 Java-先序、中序和后序遍历.mp4 [37.8 MB] 19 04 Java-递归的定义和三要素.mp4 [36.5 MB] 19 02 Java-二叉树的递归遍历.mp4 [41.2 MB] 19 06 Java-Binary tree leaf sum.mp4 [13.4 MB]
- 📁 24 第二十四章【互动】手把手带写代码——二叉树(Python 语言) 24 01 【基础班】71-python.mp4 [30.0 MB] 24 03 【基础班】1807-python(递归+递推).mp4 [22.7 MB] 24 04 【基础班】1807-python(记忆化搜索).mp4 [12.8 MB] 24 02 【基础班】650-python.mp4 [25.5 MB]
- 📁 30 第三十章【直播】利用分治法解决树的问题,二叉搜索树 利用分治法解决树的问题,二叉搜索树.mov [1.2 GB]
- 📁 35 第三十五章【互动】手把手带写代码——哈希表(Java 语言) 差为k的数对数量.mov [1.7 GB] 查找子数组.mov [1.7 GB] 句子相似性.mov [2.3 GB] 森林中的兔子.mov [2.7 GB]
- 📁 11 第十一章【直播】链表 LinkedList 11 链表 LinkedList.mp4 [233.8 MB]
- 📁 37 第三十七章【互动】高级排序算法(Java 语言) 37-5换个方式实现冒泡排序(泉州大白网络科技).mp4 [10.9 MB] 37-1 冒泡排序的基本思想(泉州大白网络科技).mp4 [51.0 MB] 37-2实现冒泡排序法(泉州大白网络科技).mp4 [64.0 MB] 37-4冒泡排序还能优化(泉州大白网络科技).mp4 [116.5 MB] 37-6冒泡排序的特点(泉州大白网络科技).mp4 [12.3 MB] 37-3冒泡排序的优化(泉州大白网络科技).mp4 [105.8 MB]
- 📁 04 第四章【互动】编程基础知识:变量与程序控制流(Java 语言) 04 Java-浮点数及数据类型转换.mp4 [36.4 MB] 04 Java-boolean类型及其操作.mp4 [27.1 MB] 04 Java-数组和循环.mp4 [47.0 MB] 04 Java-char类型和Unicode.mp4 [57.9 MB] 04 Java-if语句.mp4 [37.0 MB] 04 Java-IntelliJ and Sublime.mp4 [40.1 MB]
- 📁 25 第二十五章【互动】手把手带写代码——二叉树(Java 语言) 25 02 【基础班】650-java.mp4 [25.8 MB] 25 03 【基础班】1807-java(递归+递推).mp4 [19.5 MB] 25 01 【基础班】71-java.mp4 [26.6 MB] 25 04 【基础班】1807-java(记忆化搜索).mp4 [14.2 MB]
- 📁 08 第八章【互动】线性数据结构-链表(Python 语言) 08 python-算法的时间复杂度.mp4 [20.1 MB] 08 python-链表的基本操作(一).mp4 [31.8 MB] 08 python-链表的概念.mp4 [16.5 MB] 08 python-quiz.mp4 [25.8 MB] 08 python-本节重点及上节回顾.mp4 [14.2 MB] 08 python-链表的遍历.mp4 [11.0 MB] 08 python-链表的基本操作(二).mp4 [30.7 MB]
- 📁 03 第三章【互动】编程基础知识:循环、函数与面向对象(Python 语言) 03 python-补充-权限控制.mp4 [25.4 MB] 03 python-2.2.2 练习一.mp4 [11.4 MB] 03 python-2.4.1 什么是面向对象及对象的概念.mp4 [9.3 MB] 03 python-2.4.3 什么是面向对象编程及封装性.mp4 [38.5 MB] 03 python-2.3.2 练习二.mp4 [3.9 MB] 03 python-2.2.1 如何写好if语句.mp4 [36.7 MB] 03 python-2.2.3 for循环.mp4 [42.3 MB] 03 python-补充-构造函数.mp4 [13.7 MB] 03 python-2.4.2 类的概念.mp4 [44.9 MB] 03 python-2.1 本节重点和课前回顾.mp4 [9.5 MB] 03 python-2.2.4 循环终止及while语句.mp4 [31.4 MB] 03 python-2.4.4 练习三.mp4 [9.9 MB] 03 python-2.3.1 函数.mp4 [49.6 MB] 03 python-2.5 总结.mp4 [1.7 MB]
- 📁 39 第三十九章【互动】手把手带写代码——排序(Python 语言) 整数排序快排.mov [1.5 GB] 整数排序merge sort.mov [1.2 GB] 逆序对.mov [1.6 GB] 颜色分类.mov [558.1 MB]
- 📁 15 第十五章【互动】手把手带写代码——链表(Java 语言) 15 03 【基础班】228-java.mp4 [6.6 MB] 15 01 【基础班】219-java.mp4 [15.0 MB] 15 02 【基础班】452-java.mp4 [11.4 MB] 15 04 【基础班】170-java.mp4 [23.2 MB]
- 📁 32 第三十二章【互动】手把手带写代码——分治法(Python 语言) 修剪二叉搜索树.mov [2.9 GB] 子树.mov [3.9 GB] 二叉树中的最大路径和.mov [2.5 GB] 在二叉搜索树中查找.mov [2.4 GB]
- 📁 34 第三十四章【互动】手把手带写代码——哈希表(Python 语言) 差为k的数对数量.mov [1.3 GB] 查找子数组.mov [2.2 GB] 句子相似性.mov [4.8 GB] 森林中的兔子.mov [4.4 GB]
- 📁 27 第二十七章【互动】二叉搜索树(Java 语言) 27 04 Java-Binary Tree Level Order Traversal.mp4 [15.4 MB] 27 01 Java-普通遍历.mp4 [41.2 MB] 27 05 Java-Convert Binary Tree to Linked Lists by Depth.mp4 [21.4 MB] 27 06 Java-Identical binary tree.mp4 [26.9 MB] 27 07 Java-Validate balanced binary tree.mp4 [22.5 MB] 27 02 Java-分层遍历.mp4 [23.8 MB] 27 03 Java-二叉树宽度优先遍历的复杂度分析.mp4 [23.7 MB] 27 08 Java-Validate Binary Search Tree.mp4 [26.8 MB]
- 📁 29 第二十九章【互动】哈希表 Set & Map(Java 语言) 29 03 32Java-哈希表和冲突解决-重哈希.mp4 [19.5 MB] 29 05 32Java-哈希表的冲突解决-闭散列.mp4 [21.6 MB] 29 02 32Java-哈希表及其实现.mp4 [21.7 MB] 29 04 32Java-哈希表的冲突解决-开散列.mp4 [32.8 MB] 29 01 32Java-集合和索引.mp4 [32.9 MB]
- 📁 36 第三十六章【互动】排序算法 Quick Sort & Merge Sort(Python 语言) 36.4分治法的代码思考方式.mov [1.7 GB] 36.1普通排序算法.mov [2.3 GB] 36.9总结.mov [2.8 GB] 36.5归并排序的复杂度.mov [5.8 GB] 36.3归并排序2.mov [3.7 GB] 36.2归并排序1.mov [9.6 GB] 36.7快排的细节问题.mov [7.3 GB] 36.8快排的复杂度.mov [2.8 GB] 36.6快速排序.mov [6.1 GB]
- 📁 10 第十章【直播】字符串 String 10 字符串 String-1.mp4 [226.4 MB] 10 字符串 String-2.mp4 [156.9 MB]
- 📁 22 第二十二章【互动】手把手带写代码——栈和队列(Python 语言) 22 04 【基础班】575-python.mp4 [23.0 MB] 22 02 【基础班】541-python.mp4 [18.1 MB] 22 01 【基础班】492-python.mp4 [19.0 MB] 22 03 【基础班】421-python.mp4 [20.6 MB]
- 📁 13 第十三章【互动】手把手带写代码——字符串(Java 语言) 13 02 【基础班】1784-JAVA.mp4 [12.7 MB] 13 01 【基础班】1781-JAVA.mp4 [15.2 MB] 13 03 【基础班】958-JAVA.mp4 [14.9 MB] 13 04 【基础班】1819-JAVA.mp4 [14.8 MB]
- 📁 28 第二十八章【互动】集合与字典 set & dictionary(Python 语言) 28 02 31python-set的简介.mp4 [7.7 MB] 28 12 31python-哈希表设计要素之重哈希.mp4 [5.3 MB] 28 08 31python-集合和字典的实现.mp4 [18.1 MB] 28 05 31python-练习一.mp4 [12.8 MB] 28 16 31python-总结.mp4 [2.5 MB] 28 07 31python-练习二.mp4 [13.6 MB] 28 13 31python-分治法练习三.mp4 [26.9 MB] 28 11 31python-哈希表设计要素之哈希冲突.mp4 [14.3 MB] 28 09 31python-hash table VS BST.mp4 [6.8 MB] 28 04 31python-set集合间的操作.mp4 [17.2 MB] 28 01 31python-本节重点和上节回顾.mp4 [6.2 MB] 28 14 31python-分治法练习四.mp4 [34.7 MB] 28 06 31python-字典的基本操作.mp4 [58.4 MB] 28 10 31python-哈希表设计要素之哈希函数.mp4 [23.8 MB] 28 15 31python-分治法练习五.mp4 [13.4 MB] 28 03 31python-set的常见操作.mp4 [21.2 MB]
- 📁 33 第三十三章【互动】手把手带写代码——分治法(Java 语言) 二叉搜索树中查找.mov [2.4 GB] 修剪二叉搜索树.mov [3.9 GB]
- 📁 01 第一章【互动】零基础找CS工作,该如何准备?(Python 语言) 01 python-1.6.2 动态类型语言VS静态类型语言.mp4 [4.5 MB] 01 python-1.2本节重点.mp4 [909.1 KB] 01 python-1.3简历全攻略.mp4 [40.8 MB] 01 python-班班有话说.mp4 [527.0 KB] 01 python-1.4面试大揭秘.mp4 [25.4 MB] 01 python-1.6.7 短路运算.mp4 [8.3 MB] 01 python-1.5 课程介绍.mp4 [38.3 MB] 01 python-1.6.4 练习一.mp4 [6.2 MB] 01 python-1.6.6 练习二及运算优先级.mp4 [20.0 MB] 01 python-1.6.3 整数运算.mp4 [10.7 MB] 01 python-1.1自我介绍.mp4 [2.8 MB] 01 python-1.6.5 浮点数和布尔型变量运算.mp4 [20.3 MB] 01 python-1.6.1交互式环境运行代码VS将代码写到py文件中.mp4 [26.8 MB] 01 python-1.6.8 练习三及变量命名风格.mp4 [24.3 MB]
- 📁 09 第九章【互动】链表及其操作,算法的时间复杂度(Java 语言) 09 Java-什么是链表?.mp4 [21.2 MB] 09 Java-算法的时间复杂度.mp4 [22.5 MB] 09 Java-链表的操作-删除、查找、修改.mp4 [32.4 MB] 09 Java-链表的操作-插入.mp4 [32.0 MB] 09 Java-神奇的dummy节点.mp4 [23.5 MB] 09 Java-链表的操作-遍历.mp4 [43.4 MB]
- Java-选择排序.mp4 [20.5 MB]
- 00 必读.txt [175.0 B]






