Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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 在哪种情况下使用哪种最小生成树算法_Algorithm_Data Structures_Graph_Graph Algorithm - Fatal编程技术网

Algorithm 在哪种情况下使用哪种最小生成树算法

Algorithm 在哪种情况下使用哪种最小生成树算法,algorithm,data-structures,graph,graph-algorithm,Algorithm,Data Structures,Graph,Graph Algorithm,我是最小生成树的新手,试图找出在任何特定情况下使用哪种MST算法。有人能提供一些例子,说明MST算法中的一种比其他算法更适合的情况吗 快速总结(引用页面): “Boruvka和Kruskal的算法显然是 如果应用于现实世界,则更有用,而Prim的运行时随着订单的增长速度过快 在串行处理环境中使用的图形的名称。” 在这三种算法中,当考虑并行计算时,Boruvka的最有希望。 它是可并行设计的,包括局部搜索最小边,然后 在每一步后合并生成的树。多台计算机之间的任务划分 处理节点将是Boruvka算法

我是最小生成树的新手,试图找出在任何特定情况下使用哪种MST算法。有人能提供一些例子,说明MST算法中的一种比其他算法更适合的情况吗

快速总结(引用页面):

“Boruvka和Kruskal的算法显然是 如果应用于现实世界,则更有用,而Prim的运行时随着订单的增长速度过快 在串行处理环境中使用的图形的名称。”

在这三种算法中,当考虑并行计算时,Boruvka的最有希望。 它是可并行设计的,包括局部搜索最小边,然后 在每一步后合并生成的树。多台计算机之间的任务划分 处理节点将是Boruvka算法的逻辑扩展
从本文来看,Kruskal的算法在串行环境中效率更高。”

我想说,最小生成树问题的两个主要解决方案在图形的表示方式上有所不同。虽然可以很好地处理边列表,但s算法可以更好地处理邻域列表。如果让我来决定图形表示,我更喜欢实现Kraskar,因为我发现它更容易实现,但是在这方面的差别很小,所以这取决于你。维基百科上的那些?仅限Borůvka和Kruskal?首先感谢您的回答……我只是想找出一个例子,Kruskal比prim好,反之亦然。@anujpradhan如果您已经将图形存储在邻里列表或边缘列表中,您应该分别选择prim或Kruskal。@izmorphius假设我得到的是一个图形,而不是任何图形其他信息那么我们不能假设有一个边、邻居的排序列表…那么是哪一个呢?我使用Kruskal是因为我实现它更快,但可能会有人告诉你选择Prim。Kruskal和Prim有同样的复杂性。我会质疑你在这里给出的第一个陈述。老实说,我对MST的了解还不够,无法对此进行辩论。我只是找到了这篇文章,想和大家分享。@izomorphius大oh符号忽略了常数。如果你最多能到达800个节点,那么一个算法从10k节点开始运行就无关紧要了。@JanDvorak。然而,我对这两种算法进行了多次的比较,相信如果你很好地实现它们,它们就不会有很大的不同。还有一种情况,请考虑一下……Dijakstra的ALGO也适用于单源最短路径。