利用线程实现kruskal算法

时间:2009-12-06 19:02:55

标签: java multithreading algorithm graph kruskals-algorithm

我正在实施Kruskal的算法,我想利用线程。但是我不确定我对算法有足够的了解。

我想象的是,我会在最后解决并连接图表的不同部分。谁能指出我正确的方向?感谢。

2 个答案:

答案 0 :(得分:4)

来自Wikipedia

  

研究重点是解决问题   最小生成树问题   高度并行化的方式。有了   它是线性的处理器数量   有可能解决问题   O(logn)时间。 2003年的一篇论文“快速   用于计算的共享内存算法   稀疏的最小生成林   图“由David A. Bader和郭晶   聪显示务实   可以计算MST的算法5   8个处理器的速度比   优化顺序算法。[9]   通常,并行算法是   基于Boruvka的算法-Prim's   特别是Kruskal的算法   不能扩展到额外的   处理器。

因此,您可能会查看该文章中提到的算法,但Kruskal可能无法从多个线程中受益。

答案 1 :(得分:0)

Kruskal的MST算法难以并行化,因为它以严格指定的顺序考虑边缘。您应该查看更容易并行化的Boruvka's算法,因为它可以独立地处理部分MST的每个子树。