1 拓扑排序
1.1 什么是拓扑排序
在图论中,拓扑排序是一个有向无环图(必须条件)的所有顶点的进行排序的线性序列。而且序列必须满足两个条件:
- 每个顶点只出现一次;
- 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。
如图就可以进行拓扑排序:
1.2 进行排序
排序序列:1 ,2, 4, 3, 5;
排序规则
每次循环都是找到入度为0的点,对这个点进行输出,并把这个点关联的边去掉。
循环以上的步骤直到所有的点都输出完。
1.3 拓扑排序的应用
工程例子:在一个工程中有很多的子任务(以上图为例,一个工程共5个子任务),除了开始任务其他的每个任务都需要等待前面的任务做完了才能继续进行这个任务,那么在工程开始的时候工程负责人就需要进行规划任务的执行顺序,以保证工程能够正常运行。
学习例子:在学习生中,学习数学之前,需要学习语文(认字、读题、理解),在学习物理之前需要学习数学(计算能力),所以就有了一个序列:语文- > 数学 -> 物理。这就规划了我们整体的学习流程。