拓扑排序

1、有向无环图(DAG):有向图中不存在环。

2、AOV网:各结点活动具有先后顺序的有向无环网络(而且边没有权值)。

3、拓扑排序:

  拓扑排序可以理解为按活动的顺序排序,比如早上起来我必须先穿裤子再穿鞋,先穿内衣再穿外套,这个顺序不能乱。也可以应用在排课表上,比如我必须先学过C语言的课,才能去学数据结构。拓扑排序就是把这件事的活动的顺序,从活动网中提取出来,就是拓扑排序。

  拓扑排序的时间复杂度为O(|V|+|E|)

  拓扑排序常用两种算法:Khan算法和DFS深度优先搜索

  a、Khan算法:

      就是依次寻找入度为0的结点,然后输出,删除该结点,然后重复以上操作,直到全部输出。同一次输出的结点先后顺序可以改变,比如第一次输出ADF,也可以写成DAF,因此拓扑排序不唯一。

   b、深度优先搜索(DFS)方法进行拓扑排序:

    用DFS依次寻找输出 出度为0的结点,然后将输出的结点进行逆序,即可得到拓扑排序的序列。

   c、三角矩阵时说明没有回路,说明一定有拓扑排序。

本文作者:oaoa

本文链接:https://www.cnblogs.com/oaoa/p/13750854.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   喵喵队立大功  阅读(639)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示