数据结构与算法
算法基础
- 时间复杂度
- 空间复杂度
- 最大复杂度
- 平均复杂度
基础数据结构
线性表
- 顺序表
- 链表
- 跳跃表
- 并查集
栈与队列
- 栈
- 队列
- 优先队列
- 堆
- 多级反馈队列
哈希表
-
碰撞解决办法:
- 开放地址法
- 链地址法
- 再次哈希法
- 建立公共溢出区
- 布隆过滤器
树
- 二叉树: 各种遍历,递归与非递归
- 哈夫曼树与编码
- AVL树
- B树与B+树
- 前缀树
- 红黑树
- 线段树
数组
- 树状数组
- 矩阵
常见算法
十大排序算法
- 简单排序:
- 插入排序
- 选择排序
- 冒泡排序
- 分治排序:
- 快速排序 : 注意轴的选取方式
- 归并排序
- 分配排序:
- 桶排序
- 基数排序
- 树状排序:
- 堆排序
- 计数排序
- 希尔排序
图论算法
- 图的表示:
- 邻接矩阵
- 邻接表
- 遍历算法:
- 深度搜索
- 广度搜索
- 最短路径算法:
- Floyd
- Dijkstra
- 最小生成树算法:
- Prim
- Kruskal
- 实际常用算法:
- 关键路径
- 拓扑排序
- 二分图匹配:
- 配对算法
- 匈牙利算法
- 拓展:
- 中心性算法
- 社区算法
搜索与回溯算法
- 贪心算法
- 启发式搜索算法:
- A*寻路算法
- 地图着色算法
- N皇后问题
- 最优加工算法
- 旅行商问题
动态规划
-
树形DP:
- 01背包问题
-
线性DP:
- 最长公共子序列
- 最长公共子串
-
区间DP:
- 矩阵最大值
- 矩阵最大和
- 矩阵最大积
-
数位DP:
- 数字游戏
-
状态压缩DP:
- 旅行商
字符串匹配算法
- 正则表达式
-
模式匹配:
- KMP
- Boyer-Moore
流相关算法
- 最大流:
- 最短增广路
- Dinic算法
- 最大流最小割:
- 最大收益问题
- 方格取数问题
- 最小费用最大流:
- 最小费用路
- 消遣