学习路径
四阶段推进;先走「最小可用路径」,再按知识地图补齐进阶。
0%
最小可用路径(15 步)
- 算法与数据结构:定义、范畴与抽象数据类型15 分钟入门
建立算法、数据结构与 ADT 的基本词汇。
- 渐进分析:大 O、Ω、Θ 与增长阶20 分钟入门
学会用大 O 比较增长阶,这是全库的分析语言。
- 递归式求解与主定理25 分钟核心
掌握递归式与主定理,分治与排序分析的前提。
- 均摊分析、最坏与期望复杂度20 分钟核心
理解均摊与期望,避免误读动态数组与哈希表的真实成本。
- 数组与动态数组:内存布局与扩容20 分钟核心
数组是所有结构的内存基座,扩容均摊在此落地。
- 栈与队列:LIFO、FIFO 与循环队列15 分钟核心
栈与队列是后续树遍历、图遍历、回溯的引擎。
- 哈希表:散列函数、冲突解决与扩容25 分钟核心
哈希表是工程中最常用的期望 O(1) 结构,必须弄懂冲突与扩容。
- 二叉树与四种遍历20 分钟核心
二叉树与遍历是树/堆/图的前置骨架。
- 二叉搜索树:性质、查找与删除20 分钟核心
BST 引入「按序组织」的关键思想与删除三大情形。
- 堆与优先队列:建堆、下沉与 Top-K20 分钟核心
堆与优先队列支撑 Top-K、调度与最短路。
- 图的表示与 BFS/DFS 遍历25 分钟核心
BFS/DFS 是全部图算法的骨架,也是回溯的近亲。
- 比较排序全景与 n log n 下界25 分钟核心
比较排序全景 + n log n 下界,工程排序心智模型的来源。
- 二分查找与变体:边界、旋转与答案空间20 分钟核心
二分是「有序即折半」的通用思想,含答案空间二分。
- 分治:分解、解决与合并20 分钟核心
分治给出可复用的算法设计框架。
- 动态规划入门:状态、转移与背包25 分钟核心
动态规划是最重要的设计思想,从这里进入状态设计的世界。
完整路径说明
边界与目标
核心问题:给定一个问题与一组数据,如何组织数据、设计步骤,使求解过程正确且资源开销(时间/空间)可接受、可预判。
应用场景:服务端与客户端开发中的结构选型(缓存、索引、去重、调度)、面试与算法能力评估、竞赛训练、以及任何「数据量上去之后为什么变慢」的性能归因。
前置知识(不属于本库范围,默认已具备):任一语言的变量、循环、函数、递归写法;高中数学的指数、对数与求和记号。
学完能做到什么:
- 对给定代码或算法给出大 O 时间/空间复杂度,并说清最好/最坏/均摊/期望的口径差异;
- 面对缓存、索引、去重、排序、调度、路径等典型场景,从复杂度与访问模式出发完成结构选型并说明理由;
- 手写实现数组/链表/栈/队列、哈希表、BST 与平衡旋转、堆、图遍历、并查集、二分、四种算法思想的模板代码;
- 对 10⁶ 量级数据的行为建立数量级直觉,并能识别「隐藏的 O(n²)」。
阶段划分
| 阶段 | 目标 | 知识点 |
|---|---|---|
| 入门 | 建立「算法—结构—复杂度」的基本词汇与增长阶直觉 | kp-001, kp-002, kp-005 |
| 核心 | 掌握四大结构族、两大应用、四大思想的核心机制与手写能力 | kp-003, kp-004, kp-006, kp-007, kp-008, kp-009, kp-011, kp-012, kp-014, kp-016, kp-017, kp-018, kp-020, kp-022, kp-024, kp-025, kp-026, kp-027, kp-030 |
| 进阶 | 扩展到工程化与专门化主题:平衡树细节、外存结构、线性排序、外排、DP 进阶、KMP、位运算 | kp-010, kp-013, kp-015, kp-019, kp-021, kp-023, kp-028, kp-029, kp-031, kp-032 |
| 前沿 | 跳出纯技术视角,理解算法的社会影响与治理边界 | kp-033 |
最小可用路径
以下 15 个知识点构成最小可用路径(合计约 315 分钟,约 5.3 小时)。按序学完即可建立「能分析、能选型、能实现」的核心能力,其余知识点可在需要时按地图补齐:
- kp-001 —— 建立算法、数据结构与 ADT 的基本词汇。
- kp-002 —— 学会用大 O 比较增长阶,这是全库的分析语言。
- kp-003 —— 掌握递归式与主定理,分治与排序分析的前提。
- kp-004 —— 理解均摊与期望,避免误读动态数组与哈希表的真实成本。
- kp-006 —— 数组是所有结构的内存基座,扩容均摊在此落地。
- kp-008 —— 栈与队列是后续树遍历、图遍历、回溯的引擎。
- kp-009 —— 哈希表是工程中最常用的期望 O(1) 结构,必须弄懂冲突与扩容。
- kp-011 —— 二叉树与遍历是树/堆/图的前置骨架。
- kp-012 —— BST 引入「按序组织」的关键思想与删除三大情形。
- kp-014 —— 堆与优先队列支撑 Top-K、调度与最短路。
- kp-016 —— BFS/DFS 是全部图算法的骨架,也是回溯的近亲。
- kp-020 —— 比较排序全景 + n log n 下界,工程排序心智模型的来源。
- kp-022 —— 二分是「有序即折半」的通用思想,含答案空间二分。
- kp-024 —— 分治给出可复用的算法设计框架。
- kp-026 —— 动态规划是最重要的设计思想,从这里进入状态设计的世界。
学习建议与节奏
- 每个知识点建议「读一遍 → 手推一遍图/公式 → 写一遍代码 → 做自测题」,单点 20–40 分钟,单日不超过 4 个知识点。
- 02/03/04 模块动笔画图,06 模块动笔找反例;两轮学习之间隔 1–2 天做回忆式复习。
- 自测题答不出来时,回到该知识点的「原理与机制」小节重推导,而不是直接看答案。