重み w(e) を持つ重み付き無向グラフ G(v,e) が与えられた場合、頂点の各ペア (u,v)∈G が接続され (つまり、spanning tree
)、選択された重みの範囲となるエッジのセットを見つけます。エッジが最小です (または、最小重みと最大重みの差が最小です)。
重みに関してエッジをソートし、ソートされた配列内の連続するエッジ (g[index = current_left],g[index+1 = current_right]) 間の重みの差が最小の 2 つのエッジを選択する貪欲なアプローチを試みました。 (current_left,current_left- j
) または (current_right,current_right+ j
)の間の最小差に応じて左または右に移動し、j
未訪問の頂点が少なくとも 1 つあるエッジが見つかるまでインクリメントされます。
例えば:
ここで取得できる最小範囲は、重みが {2,3,5} のエッジを選択することであり、範囲は 3 です。
提案されたアルゴリズムが失敗するテスト ケースを指摘し、そのようなスパニング ツリーを見つけるためのアルゴリズムを提案してください。
編集:
予想される時間の計算量は O(|E|log|E|) で、|E| は はエッジの数です。