BFSの複雑さは、線形すなわちO(V + E)であると言われているが、有向完全グラフのエッジの総数は、V *(V-1)グラフ。だから、BFSはO(V^2)時間をかけて完全なグラフをたどるでしょうか?完全なグラフの幅優先探索の複雑さは何ですか?
答えて
はい、私はすでに数学を行ったと仮定します。
O(V+E) = O(V + V*(V-1))
= O(V + V*V - V)
= O(V*V)
この結果から、隣接リストを使用するBFSの最悪のケースは線形ではなく二次式であると結論付けることができますか? –
@UttakarshTikkuアルゴリズムの入力の大きさは線形で、頂点の数は2次です。 –
ありがとう!これは大きな助けとなりました! –
BFSはO(V + E)
時間で実行され、グラフは隣接リスト構造で表されます。
密集したケースでも、答えはO(V+E)
になります。 (表現は隣接リストです)。
隣接行列の場合O(V^2)
。
グラフがどのようなものであっても、常に最初に開始点のネイバーをカバーします。それから隣人のためにこれを繰り返してください。だから、それは常にO(V+E)
時にトラバースする必要があることがわかりますが、それは隣接行列のために難しい表現です。したがって、O(V^2)
になります。私たちが望むすべての時間が与えられた頂点に隣接するエッジが何であるかを見つけるために、これはある
「U」を、私たちは長さである配列全体adjmatrix[u]
を、トラバース| V |
私がここで得ているのは、頂点の数とここでの辺の数の関係です。完全なグラフの辺の数は、完全な有向グラフの場合、頂点の数、正確にはV *(V-1)の関数です。 –
はい、表現は重要です。それは私が言ったことです。 – coderredoc
- 1. 幅優先探索キュー
- 2. 幅優先探索順
- 3. 幅優先検索と深さ優先探しの入出力
- 4. 幅優先探索の質問C++
- 5. Hackerrank:幅優先探索:最短リーチ
- 6. これは幅優先探索アルゴリズムですか?
- 7. 深さ優先探索アルゴリズム
- 8. 深さ優先探索は、Java
- 9. のpython深さ優先探索再帰
- 10. 変更の深さ優先探索
- 11. BFS Cで行列の(幅優先探索)++
- 12. 深度最初の検索と幅優先探しの理解
- 13. 木のための幅優先探索、Python
- 14. グラフの深さ優先検索
- 15. キューの代わりにセットによる幅優先探索
- 16. Python幅優先探索マトリックスの印刷パス
- 17. 深さ優先探索 - JavaクラスImplentation
- 18. 深さ優先探索隣接
- 19. 再帰アルゴリズムで幅優先や深さ優先で検索しますか?
- 20. 深さ優先のセグメンテーションフォールトで大きなグラフを検索する
- 21. 幅優先検索実装
- 22. 隣接行列を使った幅優先探索
- 23. 幅優先探索間違った出力
- 24. リンク先のデータ構造に「幅優先探索アルゴリズム」を書くにはどうすればよいですか?
- 25. Javaの8x8グリッドの幅優先検索
- 26. トポロジカル検索と幅優先検索
- 27. 幅優先検索の推奨ツリータイプ
- 28. 弾性検索 - 完全一致を優先します
- 29. プロローグで幅優先探索で最短経路を返します
- 30. OpenMP:深さ優先探索のための良い戦略
答えを確認してください。不便をおかけして申し訳ありません。私は腹がBFSであることを見なかった。私の答えをチェックしてください。 – coderredoc