思维导图
算法
1 复杂度分析
1.1 时间复杂度
1.2 空间复杂度
2 基本算法思想
2.1 枚举算法
2.2 贪心算法
2.3 动态规划
2.4 分治算法
2.5 回溯算法
3 排序
3.1 冒泡排序
3.2 插入排序
3.3 选择排序
3.4 希尔排序
3.5 归并排序
3.6 快速排序
3.7 堆排序
3.8 计数排序
3.9 基数排序
3.10 桶排序
4 搜索
4.1 深度优先搜索
4.2 广度优先搜索
4.3 A*启发式搜索
5 查找
5.1 线性表查找
5.2 树表查找
5.3 散列表查找
6 字符串匹配
6.1 朴素
6.2 KMP
6.3 Robin-Karp
6.4 Boyer-Moore
6.5 AC自动机
6.6 Trie
6.7 后缀数组
7 数学
7.1 数论
7.2 计算几何
7.3 概率分析
7.4 并查集
7.5 拓扑网络
7.6 矩阵运算
7.7 线性规划
数据结构
1 线性表
1.1 数组
1.2 链表
1.3 栈
1.4 队列
2 散列表
散列函数
冲突解决
动态扩容
位图
3 树
3.1 树的结构
3.2 二叉树
3.3 AVL树
3.4 B+树
3.5 红黑树
3.6 线段树
4 图
4.1 图的存储
4.2 最短路径
4.3 最小生成树
4.4 关键路径
4.5 拓扑排序
4.6 二分图
4.7 最大流