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

被折叠的 条评论
为什么被折叠?



