Topological ordering in DAG (有向无环图的拓扑排序问题)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

Topological ordering in DAG (有向无环图的拓扑排序问题)

  1. 前言
  2. 拓扑排序有啥用
  3. 拓扑排序实现
    1. 通过不断寻找那些没有income edge的节点来实现
    2. 通过排序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的父节点都需要在子节点之前出现。

假设我们手上有一堆任务要做,但是做每个任务之前都可能有一些前置任务,我们必须要完成一个任务的前置任务才可以完成这个任务。大学里我们在选课的时候也会遇到类似的问题,如果你前面线性代数忘了选,到了后边想要选一些计算机课的时候就凉凉了。这个时候我们或许可以借助一下拓扑排序帮你做一下选课的参考,搞清楚到底需要上哪些课才能满足我们想上的课的前置要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值