http://en.wikipedia.org/wiki/Minimum_spanning_tree
我希望能够将我的最小生成树算法与最佳算法进行比较。 有人知道我可以在哪里找到这些算法的C++实现吗?我已经使用Bing和Google搜索了,但没有找到任何信息。如果这些算法是最好的,肯定会有C++实现的,对吧?目前最快的最小生成树算法是由David Karger、Philip Klein和Robert Tarjan开发的,他们基于Borůvka算法和逆删除算法的组合,提出了一种线性时间随机化算法。Bernard Chazelle提出的最快非随机化算法基于软堆,一种近似优先队列。它的运行时间是O(mα(m,n)),其中m是边数,n是顶点数,α是Ackermann函数的经典函数反演。函数α增长极其缓慢,因此在所有实际目的下,可以将其视为不大于4的常数;因此Chazelle的算法非常接近于线性时间。如果边权是具有有界位长度的整数,则已知具有线性运行时间的确定性算法。对于一般权重是否存在具有线性运行时间的确定性算法仍然是一个未解决的问题。然而,Seth Petie和Vijaya Ramachandran发现了一种可证明最优的确定性最小生成树算法,其计算复杂度是未知的。
我已经测试过Boost C++的图形算法。