先判断:这门课值不值得学

日常写业务代码,多数人在调标准库,很少自己实现底层结构。可一旦遇到性能瓶颈、内存溢出或复杂集合源码排查,如果不懂底层的数组扩容、链表遍历或栈队列机制,排查就会卡壳。这门课解决的就是这个断层:它不教业务框架,而是带你从无序数组、二分查找开始,一步步推导排序算法、手写集合和栈队列。对于需要啃 Java 源码、准备技术面试或想优化代码执行效率的人来说,这种底层逻辑梳理是绕不开的必修课。资料适合已掌握 Java 基础语法的读者,如果你连基本面向对象和集合接口都不熟,建议先补基础再看。

建议先看哪几块,怎么配合练习

这套资料是按循序渐进编排的,编辑建议别跳着看。前期先看无序数组到二分查找这几节,把连续存储和查找效率的关系吃透;接着重点啃冒泡、选择、插入这三种基础排序,理解时间复杂度差异。中后段是手写 ArrayList 和栈、队列的实现,这部分是核心,不要只看视频,必须跟着把代码敲出来。资料配合练习的方法是:先理解概念,暂停视频自己实现一遍,再对比讲解查漏补缺。尤其手写集合那几节,建议自己画图模拟指针走向,彻底搞懂双向链表和双端队列的节点指向逻辑。

学完能独立做什么

跟完这套资料,你不会立刻变成架构师,但在具体工作场景里会有明显改观。首先,你能独立阅读 Java 集合源码,遇到 ArrayList 扩容或 LinkedList 增删的底层逻辑,不再是一头雾水。其次,面对基础性能优化需求,你能根据数据特征选用合适的结构,知道什么时候用数组、什么时候用链表或优先级队列。最后,自己手写过栈和队列后,再去解析四则表达式或处理特定业务流转,你会更清楚底层运转机制。这套课给的是内功,学完你在排查集合异常、做基础算法题时,会更有底气。


数据结构与算法的基础知识系统梳理一遍

课程目录

*   01 数据结构与算法的概述

*   02 数据结构与算法概述2

*   03 数据结构与算法概述3

*   04 无序数组

*   05 有序数组和二分查找1

*   06 有序数组和二分查找2

*   07 冒泡排序算法

*   08 选择排序算法

*   09 插入排序算法

*   10 稀疏数组的压缩算法

*   11 读ArrayList源码

*   12 手写一个简化版ArrayList集合

*   13 实现一个简单的栈

*   14 实现增强版的栈

*   15 栈的应用举例

*   16 单向队列的实现

*   17 双端队列的实现1

*   18 双端队列的实现2

*   19 双端队列的实现3

*   20 双端队列的实现4

*   21 优先级队列的实现

*   22 解析表达式1

*   23 解析表达式2

*   24 解析表达式3

*   25 解析表达式4

*   26 链表的基本概念

*   27 实现单向链表1

*   28 实现单向链表2

*   29 实现单向链表3

*   30 实现双端链表

*   31 基于双端链表实现队列

*   32 实现有序链表

*   33 实现双向链表

*   34 理解ADT的概率

*   35 实现带迭代器的链表

*   36 递归的初识

*   37 递归求数字三角形最大路径

*   38 递归实现二分查找

*   39 递归解决汉诺塔问题

*   40 合并两个有序数组

*   41 递归实现归并排序

*   42 利用栈来消除递归

*   43 递归求数的乘方

*   44 递归解决背包问题

*   45 递归解决组合问题

*   46 希尔排序原理分析

*   47 希尔排序的具体实现

*   48 快速排序算法的基本实现

*   49 快速排序的性能分析和优化

*   50 树的基本概念

*   51 查询和插入二叉树的节点

*   52 遍历和找最大最小的二叉树节点

*   53 删除二叉树节点的实现1

*   54 删除二叉树节点的实现2和总结

*   55 理解红黑树的原理

*   56 实现红黑树的左旋功能

*   57 实现红黑树的右旋功能

*   58 完成前半段红黑树插入程序

*   59 完成红黑色插入程序和小结

*   60 理解234树的逻辑

*   61 实现234树的节点类

*   62 实现234树的查找和插入1

*   63 实现234树的查找和插入2

*   64 实现234树的输出和小结

*   65 什么是哈希表

*   66 实现基于线性探测的哈希表1

*   67 实现基于线性探测的哈希表2

*   68 实现基于线性探测的哈希表3

*   69 二次探测和再哈希法的实现原理分析

*   70 再哈希法的具体实现

*   71 链地址法的实现和哈希表小结

*   72 数据结构堆的实现原理

*   73 数据结构堆的实现1

*   74 数据结构堆的实现2

*   75 堆排序

*   76 数据结构图的介绍

*   77 深度优先和广度优先搜索的实现逻辑

*   78 图搜索的具体实现1

*   79 图搜索的具体实现2

*   80 最小生成树和拓扑排序的实现思路

*   81 有向图的拓扑排序具体实现

*   82 有向图的拓扑排序具体实现BUG修复

*   83 带权图最小生成树的逻辑分析

*   84 带权图最小生成树的具体实现1

*   85 带权图最小生成树的具体实现2

*   86 带权图的最短路径问题的解决思路

*   87 最短路劲问题的具体实现1

*   88 最短路劲问题的具体实现2

*   89 结课测试