Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 我们可以使用n(V)<;=n(E)在使用Kruskal'时检测循环;无向图的s MST?_Algorithm_Graph_Graph Algorithm_Kruskals Algorithm_Undirected Graph - Fatal编程技术网

Algorithm 我们可以使用n(V)<;=n(E)在使用Kruskal'时检测循环;无向图的s MST?

Algorithm 我们可以使用n(V)<;=n(E)在使用Kruskal'时检测循环;无向图的s MST?,algorithm,graph,graph-algorithm,kruskals-algorithm,undirected-graph,Algorithm,Graph,Graph Algorithm,Kruskals Algorithm,Undirected Graph,根据,在无向图中查找最小生成树的步骤如下: 按其权重的非降序对所有边进行排序 选择最小的边。检查它是否与到目前为止形成的生成树形成一个循环。如果未形成循环,则包括该边。否则,丢弃它 重复步骤2,直到生成树中有(V-1)条边 这里,对于步骤2,使用了联合查找算法 如果我们检查以下情况,而不是采用这种方法,该怎么办 (图中已包含的顶点数)否,您不能使用此选项,因为您可能会在图中遇到一个循环,其中n(V)>n(E) 例如,图形由4个顶点组成,有三条边,即1-2、2-3和1-3。有一个循环,但正如@Ma

根据,在无向图中查找最小生成树的步骤如下:

  • 按其权重的非降序对所有边进行排序
  • 选择最小的边。检查它是否与到目前为止形成的生成树形成一个循环。如果未形成循环,则包括该边。否则,丢弃它
  • 重复步骤2,直到生成树中有(V-1)条边
  • 这里,对于步骤2,使用了联合查找算法

    如果我们检查以下情况,而不是采用这种方法,该怎么办


    (图中已包含的顶点数)否,您不能使用此选项,因为您可能会在图中遇到一个循环,其中n(V)>n(E)


    例如,图形由4个顶点组成,有三条边,即1-2、2-3和1-3。有一个循环,但正如@Maurycat所说的,当一个图中有两个分量,其中一个分量有一个循环时,n(V)并不成立。

    在处理Kruskal算法时,这种情况永远不会出现。仅当顶点具有边时,才会将其添加到集合中。这就是为什么我认为我的假设会成立,然后假设你有一个有很多顶点的图,你连接1-2,然后3-4,然后5-6。接下来,连接1-3。现在,集合中有6个顶点(如果我正确理解您的方法),只有4条边。因此,您可以建立一个连接2-4,这会创建一个循环,但您不会检测到它。也许您的意思是其他,但在这种情况下,如果您将两个以前未连接的组件与多条边连接起来,会发生什么情况?总的来说,你能详细解释一下“已经包含在图表中”的确切含义吗?没有考虑到这个情况,谢谢!