{A}
AlgoViz
首页
路线图
题单
教程
题目
可视化
错题本
进度
登录
加载中…
Algorithm Roadmap
算法学习路线图
按学习路径整理的 137 个算法与数据结构主题。每张卡片标注复杂度、稳定性与特性标签, 带
可视化
标记的主题可在教程页内直接交互动画演示。
全部
算法思想
排序算法
搜索算法
数据结构
动态规划
图论
字符串
面试进阶
工程实战
共 137 个主题
算法思想
(32)
时间与空间复杂度
阅读教程
递归
视问题而定
O(递归深度)
自调用
调用栈
阅读教程
分治算法
阅读教程
分治应用:逆序对与最近点对
阅读教程
贪心算法
O(n log n) 常见
O(1)
局部最优
贪心选择性质
阅读教程
区间调度与贪心
阅读教程
回溯算法
O(解空间大小)
O(递归深度)
DFS
剪枝
阅读教程
双指针技巧
O(n)
O(1)
对撞指针
快慢指针
阅读教程
快慢指针
阅读教程
滑动窗口
O(n)
O(k)
双指针变体
窗口维护
阅读教程
前缀和与差分
预处理 O(n) / 查询 O(1)
O(n)
前缀和
差分
阅读教程
位运算
O(1) 单位运算
O(1)
位运算
状态压缩
阅读教程
离散化与坐标压缩
阅读教程
扫描线算法
阅读教程
CDQ 分治
阅读教程
组合数学与计数
阅读教程
快速幂与矩阵快速幂
阅读教程
扩展欧几里得与模逆元
阅读教程
中国剩余定理
阅读教程
高斯消元
阅读教程
博弈论基础
阅读教程
数论算法
阅读教程
计算几何
阅读教程
A*搜索算法
阅读教程
高精度运算
阅读教程
离散对数
阅读教程
区间合并与区间操作
阅读教程
卢卡斯定理
阅读教程
莫比乌斯反演
阅读教程
原根
阅读教程
二次剩余
阅读教程
斯特林数
阅读教程
排序算法
(7)
基础排序:冒泡、选择与插入
O(n²)
O(1)
稳定
原地排序
稳定排序
简单直观
阅读教程
希尔排序
O(n^1.3)
O(1)
不稳定
原地排序
间隙序列
插入排序改进
阅读教程
归并排序详解
O(n log n)
O(n)
稳定
分治策略
稳定排序
空间换时间
阅读教程
快速排序详解
O(n log n)
O(log n)
不稳定
分治策略
原地排序
高效
阅读教程
堆排序
O(n log n)
O(1)
不稳定
原地排序
树形结构
最坏情况良好
阅读教程
非比较排序:计数、基数与桶
O(n + k)
O(n + k)
稳定
非比较排序
线性时间
稳定排序
阅读教程
排序算法大总结
阅读教程
搜索算法
(4)
线性查找与搜索策略
O(n)
O(1)
无序可用
基线算法
阅读教程
二分查找详解
O(log n)
O(1)
有序前提
分治
高效
阅读教程
二分查找进阶
O(log n)
O(1)
左闭右开
边界处理
阅读教程
二分答案
O(log V · check)
O(1)
二分答案
单调性
阅读教程
数据结构
(42)
数组
访问 O(1) / 查找 O(n)
O(n)
连续存储
随机访问
缓存友好
阅读教程
链表
访问 O(n) / 插删 O(1)*
O(n)
动态扩容
插入删除快
阅读教程
链表经典问题
阅读教程
链表二分与分治
阅读教程
栈 Stack
压入/弹出 O(1)
O(n)
LIFO
后进先出
阅读教程
队列
入队/出队 O(1)
O(n)
FIFO
先进先出
阅读教程
哈希表
O(1) 均摊
O(n)
O(1) 查找
哈希函数
阅读教程
哈希冲突与负载因子
阅读教程
集合与映射
阅读教程
堆和优先队列
插入/删除 O(log n) / 取极值 O(1)
O(n)
完全二叉树
极值维护
阅读教程
优先队列与堆进阶
阅读教程
二叉树
遍历 O(n)
O(h)
递归结构
分治
阅读教程
二叉树遍历与递归
阅读教程
二分搜索树
O(log n)
O(n)
有序
中序递增
阅读教程
AVL 树与平衡二叉搜索树
O(log n)
O(n)
自平衡
旋转
阅读教程
红黑树
O(log n)
O(n)
弱平衡
旋转+变色
阅读教程
Trie 字典树
O(L)(L 为串长)
O(字符集 × 节点数)
前缀匹配
字典序
阅读教程
倍增法与 LCA
阅读教程
树的直径与重心
阅读教程
B 树与 B+ 树
O(log n)
O(n)
多路平衡
磁盘友好
阅读教程
线段树
查询/修改 O(log n)
O(n)
区间操作
懒标记
阅读教程
线段树进阶
阅读教程
主席树(可持久化线段树)
阅读教程
树状数组(Fenwick Tree)
更新/前缀查询 O(log n)
O(n)
前缀和
lowbit
代码短
阅读教程
单调栈与单调队列
阅读教程
单调栈进阶
阅读教程
单调队列
阅读教程
并查集
近 O(α(n))
O(n)
并查集
路径压缩
按秩合并
阅读教程
并查集进阶
阅读教程
LRU 缓存
get/put O(1)
O(capacity)
哈希+双向链表
缓存淘汰
阅读教程
跳表
O(log n) 期望
O(n)
概率平衡
多层链表
阅读教程
设计数据结构
阅读教程
树链剖分
阅读教程
分块与莫队算法
阅读教程
B+树与数据库索引
阅读教程
块状链表
阅读教程
位图与布隆过滤器
阅读教程
斐波那契堆
阅读教程
KD 树
阅读教程
左偏树
阅读教程
伸展树 Splay Tree
阅读教程
树堆 Treap
阅读教程
动态规划
(14)
动态规划:从入门到精通
O(状态数 × 转移)
O(状态数)
最优子结构
重叠子问题
阅读教程
记忆化搜索
阅读教程
最长递增子序列(LIS)
阅读教程
最长公共子序列(LCS)
阅读教程
状态机 DP
阅读教程
背包问题
阅读教程
区间 DP
阅读教程
树形 DP
阅读教程
状态压缩 DP
阅读教程
数位 DP
阅读教程
编辑距离
阅读教程
股票买卖系列
阅读教程
打家劫舍系列
阅读教程
回文问题专题
阅读教程
图论
(17)
图的存储与遍历
阅读教程
BFS 与 DFS
O(V + E)
O(V)
BFS
DFS
阅读教程
最短路径算法
Dijkstra O(E log V)
O(V)
Dijkstra
Bellman-Ford
Floyd
阅读教程
拓扑排序
O(V + E)
O(V)
DAG
Kahn
DFS
阅读教程
最小生成树
Kruskal O(E log E)
O(V)
Kruskal
Prim
阅读教程
二分图
阅读教程
Tarjan 算法:强连通分量
阅读教程
欧拉回路与一笔画
阅读教程
2-SAT 问题
阅读教程
差分约束系统
阅读教程
网络流基础
阅读教程
网格搜索与岛屿问题
阅读教程
高级 BFS 专题
阅读教程
关键路径
阅读教程
哈密顿回路
阅读教程
二分图最大匹配
阅读教程
最小费用最大流
阅读教程
字符串
(9)
字符串:高频面试题型
阅读教程
KMP 算法
O(n + m)
O(m)
前缀函数
无回溯
阅读教程
字符串匹配
阅读教程
Manacher 算法
O(n)
O(n)
中心扩展优化
回文半径
阅读教程
字符串哈希与 Rabin-Karp
O(n)
O(n)
滚动哈希
O(1) 转移
阅读教程
后缀数组
构建 O(n log n)
O(n)
后缀排序
height 数组
阅读教程
AC 自动机
O(n + Σm)
O(Σm)
Trie+KMP
fail 指针
阅读教程
回文树
阅读教程
后缀自动机
阅读教程
面试进阶
(2)
算法面试通关指南
阅读教程
构造与设计专题
阅读教程
工程实战
(10)
算法实战:短网址系统设计
阅读教程
算法实战:Redis 数据结构剖析
阅读教程
算法实战:高性能队列 Disruptor
阅读教程
算法实战:限流与鉴权
阅读教程
算法实战:搜索引擎背后的数据结构与算法
阅读教程
数据结构选型策略:什么场景用什么结构
阅读教程
索引设计与海量数据查找
阅读教程
朴素贝叶斯与垃圾信息过滤
阅读教程
并行算法
阅读教程
向量空间与推荐系统
阅读教程