查找图中的连通分量[关闭]

2023-12-15

如果我有一个无向图(作为顶点列表实现),如何找到它的连通分量?如何使用快速联盟?


使用深度优先搜索 (DFS) 将所有单独的连接组件标记为已访问:

dfs(node u)
  for each node v connected to u :
    if v is not visited :
      visited[v] = true
      dfs(v)


for each node u:
  if u is not visited :
    visited[u] = true
    connected_component += 1
    dfs(u)

最好的方法是使用这种简单的方法,即线性时间 O(n)。
既然您询问并查找算法:

for each node parent[node] = node  

for each node u :
   for each node v connected to u :  
       if findset(u)!=findset(v) :
           union(u,v)  

**I assume you know about how findset and union works **  
for each node if (parent[node] == node)  
    connected_component += 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找图中的连通分量[关闭] 的相关文章

  • 创建将 n 个用户放入 k 个组的所有可能方法

    给定 n 个用户 u 1 u 2 u n 和 k 个组 g 1 g 2 g k 创建所有组的所有可能组合 基本上 最后每个组合都是一个Map 其中第一个Integer是用户ID 第二个Integer是组ID 例如 u 1 g 1 u 2 g
  • Haar级联正例图像大小调整

    我正在迈出第一步 为自定义对象识别创建 haar 级联 我花了时间获取大量数据并编写了一些预处理脚本以将视频转换为帧 我的下一步是裁剪感兴趣的对象 以创建一些积极的训练示例 我有几个问题 我确实在网上寻找答案 我有点困惑 我读到我应该致力于
  • 为什么 n 按位和 -n 总是返回最右边的位(最后一位)

    这是Python代码片段 1 1 1 2 2 2 3 3 1 看来任何n n总是返回最右边 最后 位 我真的不知道为什么 有人可以帮助我理解这一点吗 这是由于负数以二进制表示的方式 称为二进制补码表示 创建某个数字 n 的补码 换句话说 创
  • 为每个英文单词生成唯一序列号的算法

    对于应用程序 我需要为每个英语单词生成唯一的序列号 最好的方法是什么 一个限制是序列号生成算法应该在普通台式计算机中非常有效 Thanks 你有所有可能的单词的列表吗 如果是 则从第一个字的 0 开始 每个字将序列号加 1 如果不是 那么保
  • Seaborn HeatMap - 如何在多个不同的数据集中设置颜色分级

    所以我需要在seaborn中创建许多具有不同数据规模的热图 有些范围是 0 100 有些是 100 到 100 我需要做的是保持所有图表的颜色分级相同 例如 我希望任何低于 0 的值稳定地从深蓝色变为浅蓝色 而高于 0 的值则逐渐变为深红色
  • std::__gcd 和 std::gcd 有什么区别?

    Many https www geeksforgeeks org stdgcd c inbuilt function finding gcd websites https codeforces com submissions Madiyar
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • 从数字列表中生成所有唯一对,n 选择 2

    我有一个元素列表 假设是整数 我需要进行所有可能的两对比较 我的方法是 O n 2 我想知道是否有更快的方法 这是我在java中的实现 public class Pair public int x y public Pair int x i
  • 在c#中遍历对象树

    我有一棵由多个对象组成的树 其中每个对象都有一个名称 string id int 以及可能是同一类型的子数组 如何遍历整个树并打印出所有 id 和名称 我是编程新手 坦率地说 我很难理解这个问题 因为我不知道有多少个级别 现在我正在使用fo
  • 数字总和直到作为输入给出的数字

    如果给出一个数字作为输入 则找到该数字之前所有数字的总和 例如输入 11 则答案为 1 2 9 1 0 1 1 蛮力方法是计算所有小于某个数字的数字的数字之和 我已经实现了该方法 我想知道是否有其他方法可以在不实际计算每个数字的数字之和的情
  • 以编程方式分解大量数字

    好吧 所以我有一个巨大的数字f 实际上 这个数字只有 100 多位数字长 我知道这些因子的大小大致相同 如果我的资源和时间有限 我应该使用什么语言和算法 我包括在限制时间内编写算法的时间长度 想法 编辑 我所说的有限是指在尽可能短的时间内
  • 查找数组中的组合

    我在java中有一个像这样的二维数组 transmission communication tv television approach memorycode methodact 我需要获得所有组合 例如 transmission appr
  • 根据位置计算组合

    我在解决这个问题时遇到了麻烦 创建一个函数 给定字符集 C 可以生成第 N 个组合 或者返回给定起始位置 Ns 和结束位置 Ne 以及组合的最大长度 Mx 的一系列组合 一个具体的例子 令 C A B C 我们知道不同的组合将如下所示 假设
  • 具有 3 路划分的快速排序

    什么是三向分区快速排序 画一个数组 3 5 2 7 6 4 2 8 8 9 0 A 两分区快速排序会选择一个值 比如 4 并将每个大于 4 的元素放在数组的一侧 将每个小于 4 的元素放在另一侧 就像这样 3 2 0 2 4 8 7 8 9
  • 变量的多个值介于 0 和数字序言之间

    所以我一直在尝试自学序言 我认为我进展顺利 然而 我有点坚持我正在尝试的这一种方法 toN N A A 等于 0 到 N 1 之间的整数值 按升序生成 所以 toN 5 A 将是 A 0 A 1 A 2 A 3 A 4 我对序言还很陌生 所
  • 为什么路径压缩不会改变 UnionFind 中的排名?

    我正在研究 UnionFind 的实现 并从这里进行排序和路径压缩http en wikipedia org wiki Disjoint set data struct Disjoint set forests http en wikipe
  • 增量决策树 C++ 实现

    有谁知道决策树分类器的增量实现吗 这样 当您将新实例添加到训练集中时 它可以根据现有决策树分类器以低计算量并尽可能快地生成最佳决策树分类器 换句话说 我有一个最优决策树分类器集A 其中命名为T 1 现在我想添加实例X to set A并找到
  • 用于图形操作的 Javascript 库

    有没有建议的 javascript 替代 pythonpygraph http code google com p python graph or NetworkX http networkx lanl gov 应该注意的是 可视化不是必需
  • Networkx 中 Louvain 分区的可视化

    请帮助我更改 Louvain 聚类算法结果的可视化 我从网站上获取了代码https github com taynaud python louvain https github com taynaud python louvain我可以重写
  • 我可以在线性时间内检查有界列表是否包含重复项吗?

    假设我有一个Int列表 其中元素已知是有界的 并且列表已知不长于它们的范围 因此它完全有可能不包含重复项 如何才能最快地测试是否是这种情况 我知道nubOrd https hackage haskell org package contai

随机推荐

  • 如何确定 Excel 区域是否隐藏?

    在我的代码中 我包含一个布尔变量 我想在其中分配范围隐藏属性的值 即 如果范围是隐藏的 则变量的值应为 true 反之亦然 运行代码时 我收到 1004 运行时错误 无法获取 Range 类的隐藏属性 由此 我假设这种情况下的隐藏属性是只写
  • 如何将 functools.singledispatch 与实例方法一起使用?

    Python 3 4added使用静态方法定义函数重载的能力 这本质上是文档中的示例 from functools import singledispatch class TestClass object singledispatch de
  • MVC 验证消息国际化

    例如 我想要这个默认的 ASP NET MVC 4 验证消息 The value qsdqsdqs is not valid for Montant以法语显示 我找到了这个包http nuget org packages Microsoft
  • 从对象数组键/值映射数组

    我需要获取一个数组对象并将其映射 以便新数组只是一个简单的数组 如果每个对象都有 id 例如 id 49 name Rest update test id 12 name Rest test 会成为 49 12 到目前为止我已经尝试过了 m
  • 实例化新的内部类时是否需要关键字“this”?

    Oracle Java SE 教程中的另一个示例 它工作正常 但我不确定创建内部类的实例时是否 为什么需要 this 不管我是否取出来 结果似乎都是一样的 为了清楚起见 我指的是 InnerEvenIterator 迭代器 this new
  • 如何将块 div 的角倒角?

    我有以下 HTML 文档
  • 如何解决curl:(35)错误

    如果我在 CentOS 5 机器上运行以下命令 curl LsS https symfony com installer o usr local bin symfony 我收到此错误 curl 35 error 14077410 SSL r
  • 调试闭包编译器编译的 Javascript

    我有一个复杂的 dojo 应用程序 可以在未编译的情况下正常工作 但在使用 Google 编译后闭包编译器 我在某些行为上发现了细微的差异 事实上 调试起来非常困难 而且我无法找到任何有关使用 Google Closure 编译和未编译的
  • 页面请求中的 UTF-8 字节序列无效

    我在页面请求 永久链接 上收到 UTF 8 中的无效字节序列 我不知道为什么也无法重现它 但我确实遇到了很多这样的异常 A ArgumentError occurred in products index invalid byte sequ
  • URL解码混乱

    我有一个引用以下网址的数据库 http en wikipedia org wiki Herbert Gr F6nemeyer 然而 这似乎是一个错误的 URLEncoding 导致 HttpUtility UrlDecode 给我垃圾 和
  • 如何将 django Rest Framework json 查询结果连接到 dgrid/OnDemandGrid

    我的 JSON 存储 django Rest 框架 返回 count next previous 和 results 的键 count 是可用的行数 下一页 是下一页结果的 URL 例如 ids 26 50 previous 是上一页结果的
  • 获取在后台运行的 Java 运行时进程

    我正在编写一个java应用程序 我需要在正在运行的应用程序的整个生命周期中在后台运行一个进程 这是我所拥有的 Runtime getRuntime exec this works ok Process p Runtime getRuntim
  • 是否有一个真正有效的示例来显示 x86_64 上存储加载重新排序的副作用?

    众所周知 在 x86 64 上可以进行 Store Load 重新排序 如果 Store 和 Load 之间没有MFENCE 英特尔 64 和 IA 32 架构 8 2 3 4 可以将早期存储的负载重新排序到不同位置 还已知 在这样的示例中
  • 如何在导航周围创建径向渐变?

    看到围绕导航中心流动的径向渐变了吗 假设我做了一个div那就是导航 我将如何创建如图所示的渐变 注 看背景behind菜单 如果你谈论导航后面的浅棕色光芒 你可以使用 CSS3 来做到这一点 http jsfiddle net Jg8ZC
  • SignalR 自托管 Windows 服务,监听消息

    我正在尝试构建一个自托管 SignalR 的 Windows 服务 我已阅读过诸如此类的教程SignalR 在 ASP Net 上自托管 我注意到 至少看起来 它们是基于广播消息的 并且似乎找不到任何与聆听相关的内容 我需要收听服务内部的消
  • 为字符串创建距离矩阵

    我想加快以下代码的速度 有人能好心地提出一些建议吗 library dplyr library fuzzywuzzyR set seed 42 rm list ls options scipen 999 init FuzzMatcher n
  • Spring Boot 中的 Hystrix 仪表板问题

    我是 Hystrix 仪表板的新手 我已经用 Hystrix 编写了示例应用程序 我想查看 Hystrix 图表 命令指标流 但我收到以下错误 Circuit Unable to connect to Command Metric Stre
  • PDF 中的 JavaScript?

    我制作了一个可编辑的 PDF 供学生索取成绩单 现在 我想限制输入 例如 我只想要他们的 ID 号为数字 并且我只想要姓名字段中的字母 无特殊字符 等 此外 还有一个名为 最后就读年份 的输入 其中输入用户的最后一个学年上大学了 如果输入的
  • 从元素最小值的元组列表中提取元组的优雅方法

    我有一个元组列表 我希望从中得到索引处最小值的元组1 例如 如果我的列表如下 a a 2 ee 3 mm 4 x 1 我希望返回的元组是 x 1 目前我正在使用sorted函数得到这样的结果 min sorted a key lambda
  • 查找图中的连通分量[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如果我有一个无向图 作为顶点列表实现 如何找到它的连通分量 如何使用快速联盟 使用深度优先搜索 DFS 将所有单独的连接组件标记为已访问 dfs node u for each