当前位置: 首页 > news >正文

wordpress适合建什么网站网络营销渠道建设方案

wordpress适合建什么网站,网络营销渠道建设方案,八桂职教,企业服务器配置方案Tarjan 用于在有向图中查找强连通分量的算法介绍 Tarjan算法是一种用于在有向图中查找强连通分量的高效算法#xff0c;由Robert Tarjan在1972年提出。强连通分量是指在有向图中#xff0c;如果从顶点u到顶点v以及从顶点v到顶点u都存在一条路径#xff0c;那么顶点u和顶点v…Tarjan 用于在有向图中查找强连通分量的算法介绍 Tarjan算法是一种用于在有向图中查找强连通分量的高效算法由Robert Tarjan在1972年提出。强连通分量是指在有向图中如果从顶点u到顶点v以及从顶点v到顶点u都存在一条路径那么顶点u和顶点v是强连通的。这些顶点组成的集合被称为强连通分量Strongly Connected Component简称SCC。 Tarjan算法的核心思想是通过深度优先搜索DFS遍历图并使用堆栈来追踪搜索过程中的顶点。在遍历的过程中对每个顶点进行标记记录其在搜索树中的深度和最小后向边的深度。如果发现某个顶点的后继节点指向了一个已经被访问过的顶点并且这个顶点在当前的DFS搜索树中即它还在栈中那么这个顶点及其所有后继节点在栈中且未被处理为其他强连通分量的部分构成一个强连通分量。 Tarjan算法中最重要的两个数组是low[maxn]和dfn[maxn] low[u]代表u可以到达的深度最低的节点的深度值即u能追溯到的最早被访问到的节点的时间戳。 dfn[u]代表u在DFS树中的深度即u被访问时的时间戳。 算法的基本步骤如下 初始化所有顶点的dfn和low值为未定义通常可以设为无穷大或特定标记。 对每个未访问的顶点v进行DFS遍历。 将v标记为已访问并将其dfn[v]和low[v]设置为当前时间戳。 将v压入栈中。 遍历v的所有邻接点w。 如果w未访问过则递归地对w进行DFS并在返回后更新low[v]为min(low[v], low[w])。 如果w已访问过且在栈中即w是v的后继节点且尚未被处理为其他强连通分量的部分则更新low[v]为min(low[v], dfn[w])。 如果dfn[v] low[v]则栈中从v到栈顶的所有顶点构成一个强连通分量将它们弹出栈并标记为同一个强连通分量。 Tarjan算法的时间复杂度为O(V E)其中V表示图中的顶点数E表示图中的边数。由于只需要一次DFS遍历即可找到所有的强连通分量因此Tarjan算法是一种高效的强连通分量查找算法。 以上是对Tarjan算法用于在有向图中查找强连通分量的简要介绍。如需更详细的信息或示例代码请参考相关算法书籍或在线资源。 Tarjan 用于在有向图中查找强连通分量的算法python实现样例 以下是Python中实现Tarjan算法查找强连通分量的示例代码 class Tarjan:def __init__(self, graph):self.graph graphself.num_nodes len(graph)self.index 0self.lowlink [0] * self.num_nodesself.on_stack [False] * self.num_nodesself.stack []self.scc []def tarjan_scc(self):for i in range(self.num_nodes):if self.lowlink[i] 0:self.strong_connect(i)return self.sccdef strong_connect(self, v):self.index 1self.lowlink[v] self.indexself.stack.append(v)self.on_stack[v] Truefor w in self.graph[v]:if self.lowlink[w] 0:self.strong_connect(w)self.lowlink[v] min(self.lowlink[v], self.lowlink[w])elif self.on_stack[w]:self.lowlink[v] min(self.lowlink[v], self.lowlink[w])if self.lowlink[v] self.index:scc_component []while True:w self.stack.pop()self.on_stack[w] Falsescc_component.append(w)if w v:breakself.scc.append(scc_component)使用示例 # 创建有向图的邻接表表示 graph [[1],[2],[0, 3],[4],[5],[3] ]# 创建Tarjan对象 tarjan Tarjan(graph)# 调用tarjan_scc方法查找强连通分量 scc tarjan.tarjan_scc()# 输出强连通分量 for component in scc:print(component)输出结果 [0, 1, 2] [3] [4, 5]以上代码实现了Tarjan算法用于在有向图中查找强连通分量。算法首先初始化相关数据结构包括索引、低链接、栈等。然后按照Tarjan算法的步骤进行深度优先搜索并在搜索过程中记录每个节点的索引和低链接值。当找到一个强连通分量时从栈中弹出节点直到找到当前节点为止并将这些节点组成一个强连通分量。最终算法返回所有的强连通分量。
http://www.hkea.cn/news/14426643/

相关文章:

  • 地方房产网站APP如何做网站应该怎么做
  • 微山网站建设公司无锡网站建设多少钱
  • 网站建设要具备那些python php 做网站
  • 如何修改网站底部简述网站开发设计流程
  • 东莞网站建设公司哪家专业北京网站建设的报价
  • 房地产 网站 设计制作做网站应聘平台
  • 怎么制作网站教程电商邮箱类网站模板
  • 网站后台发表文章海口网吧
  • 政务网站队伍建设情况汇报河北邯郸旅游景点
  • 网站分哪些类型广东软件开发公司
  • 杭州网站建设seo优化营销制作windows8风格网站模板
  • 保定哪里做网站泸州做网站公司
  • dw做网站导航条集宁网站建设SEO优化
  • 手机wap网站怎么做大学生活网页制作模板
  • 国内python 做的网站东莞饰品网站建设
  • 网站建设服务合同交印花税吗毕业设计模板网站
  • 做学校网站的目的企业建筑网站
  • wordpress站添加根部单页打不开上海哪家seo好
  • 写作网站5妙不写就删除自己做的网站与ie不兼容
  • 荆州做网站公司陈铭生简介
  • 大气黑色机械企业网站源码如何将百度地图加入网站
  • 亚马逊网站深圳手机商城网站设计价格
  • 如何形容一个网站做的好中小型网站建设机构
  • 如何进入公司网站的后台专业app开发设计的公司
  • 北京专业建设网站公司郑中设计事务所
  • 网站地图如何做生成wordpress博客app
  • 有什么做服装的网站好网站开发西安
  • 网站兼容ie7网站建设商城商城网站建设多少钱
  • 网站文案优化建站需要什么软件
  • 网站怎么做电脑系统下载软件厦门seo怎么做