**
Topological ordering in DAG (有向无环图的拓扑排序问题)
- 前言
- 拓扑排序有啥用
- 拓扑排序实现
- 通过不断寻找那些没有income edge的节点来实现
- 通过排序DFS深度优先算法每个节点的完成时间来实现
(一)前言
最近学算法学到了有向无环图的拓扑排序,即Topological ordering in directed acyclic graph,留下一点笔记加深理解。
(二)拓扑排序有啥用
首先,我们先说说啥叫拓扑排序。以下是维基百科的说法。
In computer science, a topological sort or topological ordering of a directed graph is a linear ordering of its vertices such that for every directed edge uv from vertex u to vertex v, u comes before v in the ordering.
简言之,排序过的结果里出现的每条edge的父节点都需要在子节点之前出现。
假设我们手上有一堆任务要做,但是做每个任务之前都可能有一些前置任务,我们必须要完成一个任务的前置任务才可以完成这个任务。大学里我们在选课的时候也会遇到类似的问题,如果你前面线性代数忘了选,到了后边想要选一些计算机课的时候就凉凉了。这个时候我们或许可以借助一下拓扑排序帮你做一下选课的参考,搞清楚到底需要上哪些课才能满足我们想上的课的前置要求。
我们可以借助有向无环图来录入我们有哪些课以及他们之间彼此的关系。
有一条定理了解一下:
Th

本文介绍了有向无环图的拓扑排序问题,包括其概念、作用和两种实现方法:一是通过寻找无income edge的节点,二是利用DFS深度优先算法按完成时间排序。拓扑排序在解决任务依赖、选课等问题中具有实用性,并且必须在无环的图中进行。文章详细阐述了这两种方法的步骤和时间复杂度。
最低0.47元/天 解锁文章
2万+

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



