常见的数据结构
- 10个重要的数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
- 线性表
- 数组
- 链表
- 单链表
- 双向链表
- 循环链表
- 双向循环链表
- 静态链表
- 队列
- 普通队列
- 双链队列
- 阻塞队列
- 并发队列
- 阻塞并发队列
- 栈
- 顺序栈
- 链式栈
- 散列表
- 散列函数
- 冲突解决
- 链表法
- 开放寻址
- 其他
- 动态扩容
- 位图
- 树
- 二叉树
- 平衡二叉树
- 二叉查找树
- 平衡二叉查找树
- AVL树
- 红黑树
- 完全二叉树
- 满二叉树
- 多路查找树
- B树
- B+树
- 2-3树
- 2-3-4树
- 堆
- 小顶堆
- 大顶堆
- 优先级队列
- 斐波那契堆
- 二项堆
- 其他
- 树状数组
- 线段树
- 二叉树
- 图
- 图的存储
- 邻接矩阵
- 邻接表
- 拓扑排序
- 最短路径
- 关键路径
- 最小生成树
- 二分图
- 最大流
- 图的存储
基本算法
- 10个重要的算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
- 递归
- 排序
- O(n^2)
- 冒泡
- 插入
- 选择
- 希尔
- O(nlogn)
- 归并排序
- 快速排序
- 堆排序
- O(n)
- 基数排序
- 计数排序
- 桶排序
- O(n^2)
- 搜索
- 深度优先搜索
- 广度优先搜索
A*启发式搜索
- 查找
- 线性表查找
- 树结构查找
- 散列表查找
- 字符串匹配
- 朴素
- KMP
- Robin-Karp
- Boyer-Moore
- AC自动机
- Trie
- 后缀数组
- 穷举
- 求n个数的全排列
- 八皇后问题
- 分而治之(减而治之)
- 二分查找(减而治之)
- 归并排序(分而治之)
- 贪心
- 最小生成树
- 单源最短路径
- 动态规划
- 背包问题
- 士兵路径问题
- 回溯
- 其他
- 数论
- 计算几何
- 概率分析
- 并查集
- 拓扑网络
- 矩阵运算
- 线性规划