8. 算法与数据结构
8.1 排序算法
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
- 堆排序
8.2 查找算法
- 遍历查找
- 二分查找
- 二叉树查找
- 红黑树查找
- 跳表查找
8.3 拓扑排序
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。
- 在有向图中选一个没有前驱的顶点并且输出
- 从图中删除该顶点和它相连的边
- 重复上述两步,直至所有顶点输出。
8.4 红黑树
普通红黑树过于复杂,这里采用一种比较简单的左倾红黑树,定义略有不同,实现效果更好。
规定:
- 所有红链接均为左链接
- 没有任何一个结点连着两个红链接
- 该树是完美黑色平衡的
操作:
- 插入结点的链接颜色均为红色
- 如果右结点链接为红色,左旋转
- 如果左节点和左左节点链接均为红色,右旋转
- 如果同层左右结点链接均为红色