Borůvkaのアルゴリズムは、グラフのスパニングツリー最小を計算するための標準的なアルゴリズムの一つであると。
擬似コードは次のとおりです。
MST T = empty tree
Begin with each vertex as a component
While number of components > 1
For each component c
let e = minimum edge out of component c
if e is not in T
add e to T //merging the two components connected by e
外部ループの各反復をラウンドと呼びます。各ラウンドで、内側のループはコンポーネントの数を少なくとも半分に削減します。したがって、最大でラウンドあります。各ラウンドで、内部ループは各エッジを最大で2回(各コンポーネントから1回)見ます。したがって、実行時間は最大でです。
今度は、各ラウンドの後で、同じコンポーネント内の頂点のみを接続するすべてのエッジを削除し、コンポーネント間の重複エッジも削除して、内側のループが最小ウェイトエッジであるいくつかのエッジm '<mのみを調べるようにします。以前に切断された2つのコンポーネントを接続します。
この最適化は実行時間にどのように影響しますか?
各ラウンドでエッジの数が半分になることをどういうわけか知っていれば、実行時間は大幅に改善されます: 。
ただし、最適化によって検査されるエッジの数は劇的に減少しますが(最終ラウンドでは1つのエッジのみで、コンポーネントの最大数は一般に2つを選択します)、この事実を使用して分析を強化する方法/方法は明確ではありませんランタイムの。