拓扑排序

拓扑排序是对有向无回路图的顶点排序,确保无从后向前的边。本文介绍了拓扑排序的概念,包括DFS、邻接表+暴搜、BFS+队列、BFS+优先队列等不同实现方式,并讨论了优化和字典序优先的策略。拓扑排序在事件发生的先后顺序问题中有着实际应用,例如事件依赖的排序。
摘要由CSDN通过智能技术生成

拓扑排序

目录:

  拓扑排序

  拓扑排序的若干种实现方式

    DFS

    邻接表+暴搜

    BFS+队列

    BFS+优先队列

    BFS+优先队列+贪心思想

    拓扑排序的题目

一.拓扑排序:

 什么是拓扑排序?(参考维基百科)

 拓扑排序:在图论中,有一个有向为无回路图(DAG)的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序(Topological sorting).

  1.每个顶点出现且只出现一次

  2.若A在序列中排在B的前面,则图中不存在从BA的路径

  亦可定义:

  拓扑排序是对有向无回路图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。

  在实际的应用:有向无回路图描述的是事件发生的先后顺序,可以这样定义,如果事件A在事件B前面发生:那么可以连一条从AB的有向边。那么在进行玩拓扑排序后,A一定在B的前面。

  举个例子:某个人早上起来穿衣服的过程

他必须先穿好某些衣服,才能在穿其他的衣服(如先穿袜子,在穿鞋),其他的衣服则可以按任意次序穿戴(如袜子与裤子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值