2016-06-28 9 views
0

私はグラフ理論について学んでおり、助けが必要です。 bfsを使ってグラフ内のすべての頂点間の最短経路を求めるアルゴリズムが必要です。私はbfsの仕組みを知っていますが、グラフ内のすべての頂点間の最短経路を見つけるアルゴリズムを「リメイク」することは知られていません。bfsを使用するすべての頂点間の最短経路

+0

すべての頂点間の最短経路を見つけることはどういう意味ですか?あなたは入力と出力を提供できますか? –

+0

頂点A、B、C、Dを持つグラフを作成してそれらのすべてに到達可能な場合、A-B、A-C、A-D、B-C、B-D、C-Dの間のパスが必要です –

+0

各頂点に対して実行しますか? – Yerken

答えて

0

Yerken氏によると、最も簡単な方法は、各ノードのBFSを繰り返すことです。その時間の複雑さはO((v + e)* v)であり、ここでvとeは頂点と辺の数です。 O(1)< e < O(v^2)なので、グラフが非常に密であればO(v^3)アルゴリズムです。しかし、グラフが疎で複雑さがO(v^2)であれば、その複雑さはO(v * e * log(v))= O(v * log(v))であるため、 )。

また、Floyd-WarshallアルゴリズムをO(v^3)で試すこともできますが、パスではなく距離のみが得られます。

関連する問題