1. 写在前面
随着时代的发展。。。。算法开始,大致总结了一下,如下,应该够学几年了,还有新发现后续补充
2. python实现数据结构
2.1 python内置数据结构
- 列表
- 元组
- 字典
- 集合
2.2 线性表
2.2.1 字符串
2.2.2 栈
- 单调栈
2.2.3 队列
- 单调队列
- 循环队列
- 双向队列
2.2.4 链表
- 单向链表
- 双向链表
- 跳舞链(双向十字链表)
- 跳跃表
2.3 散列表
2.3.1 哈希表
- 计数
- 哈希函数
- 滚动哈希
2.4 树
2.4.1 二叉树
2.4.1.1 堆
2.4.1.2 二叉搜索树
2.4.1.3 平衡二叉树
- 红黑树
- AVL树
- 线段树
2.4.1.4 哈夫曼树
2.4.1.5 伸展树
2.4.1.6 可持久化线段树
2.4.1.7 主席树(Treap)
2.4.2 非二叉树
2.4.2.1字典树
2.4.2.2 B树
2.4.2.3 B+树
2.4.2.4 234树
2.5 图
2.5.1 深度优先搜索
- 回溯
- 递归
- 分治
2.5.2 广度优先搜索
- 拓补排序
2.5.3 有向图
- 强连通分量
2.5.4 无向图
- 双连通分量
2.5.5 回路
- 欧拉回路
- 哈米尔顿回路
2.6 并查集
- 最小生成树
2.7 树状数组
3. python算法
3.1 查找算法(枚举算法)
- 顺序查找
- 二分查找
3.2 排序算法
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 快速排序
- 归并排序
- 计数排序
- 堆排序
- 桶排序
- 基数排序
- 平滑排序
3.3 动态规划
3.3.1 递推算法
3.3.2 线性DP
- 前缀和
- 前缀最值
3.3.3 状态压缩DP
3.3.4 记忆化搜索
3.3.5 博弈DP
3.3.6 区间DP
3.3.7 数位DP
3.3.8 最短路算法
- Dijkstra
- Bellman-Ford
- Folyed
- SPFA
- Dijkstra + Heap
3.4 贪心算法
3.5 双指针算法
- 滑动窗口
- 快慢指针
3.6 模拟算法
3.7 分治算法
3.8 字符串匹配算法
- 字典树
- KMP
- AC自动机
- BM算法
- 后缀数组