如何用分组方法计算2层对象之间的拓扑?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用分组方法计算2层对象之间的拓扑?相关的知识,希望对你有一定的参考价值。

如何用分组方法计算2层对象之间的拓扑?1.删边法:
由于每一条拓扑子路径的首节点的入度为0,因此可以采取如下办法:

步骤1:从图中选择一个入度为0的点且输出之
步骤2:从图中删除该节点及其所有出边(即与之相邻的所有点入度-1)
反复执行这两个步骤,直至所有节点都输出,即整个拓扑排序完成;或者直至剩下的图中再没有入度为0的节点,这就说明此图中有回路,不可能进行拓扑排序。

1.2 算法时间复杂度分析:统计所有节点入度的时间复杂性为(VE);接下来删边花费的时间也是(VE),总花费时间为O(VE)。

1.3 优化:使用队列保存入度为0的顶点,则可以将这个算法复杂度将为O(V+E)。

2.采用DFS计算拓扑排序:
一个有向图是无回路的,当且仅当对图进行DFS遍历时没有反向边B。那么,怎样发现反向边呢?方法很简单:调用DFS(y)算法计算y可达的节点集。若x在该节点集,则<x,y>为反向边,时间复杂度为O(E)。

2.1 由此可以得到用DFS算法计算拓扑方案的方法:以访问一个节点算作一个时间单位,把遍访了u的后代的时间称作结束时间f[u],(f[u]可以通过DFS算法得到)。显然,对图进行DFS遍历时没有反向边B,即对于图中的任意边(u,v),都有f[v] < f[u]。

2.2 时间复杂度分析:DFS的运行时间为O(E),每个节点压入topo栈的时间为O(1),因此执行拓扑排序所需的总时间为O(E)。
参考技术A 用分组方法计算2层对象之间的拓扑:方法:将两种单一拓扑结构混合起来,取两者的优点构成的拓扑。
优点:1)故障诊断和隔离方便;2)易于扩展;3)安装方便;
缺点:1)需用带智能的集中器;2)集中器到各站点的电缆长度会增加。

精华总结:网络工程师必备技能-如何用PPT画出精美拓扑视频教程

具备5年IT从业经验,资深IT经理,项目经理,产品经理。精通思科、H3C、华为、深信服、信锐、迪普、网康、Juniper、山石等网络设备;精通虚拟化、云计算、云桌面、服务器、存储、数据备份等项目实施交付,具有丰富的网络规划设计、项目实施经验。

课程目标
本课程讲解如何用PPT画出精美拓扑,帮助大家解除画不出漂亮拓扑的困扰,免除被领导批评的痛苦,加速职位晋升,PPT提供华为、H3C、思科、深信服常用图标库,同时直接提供常用场景网络拓扑原图,可以直接修改或者直接使用,方便快捷!
课程链接http://edu.51cto.com/course/14239.html

适用人群
网络从业者,在校学生,网络工程师,运维工程师

课程简介
技术分享图片

技术分享图片

课程链接http://edu.51cto.com/course/14239.html

以上是关于如何用分组方法计算2层对象之间的拓扑?的主要内容,如果未能解决你的问题,请参考以下文章

如何用SPSS进行数据分组

如何用dict pandas python替换分组数据框

如何用SQL SERVER取分组数据第一条

如何用spass给一组数据比如说年龄分组?

如何用sas 随机分层分组

如何用SQL解决连续几天的问题