BFS (幅優先検索) はグラフ走査手法であり、単純なアルゴリズムと高度なアルゴリズムの両方でよく使用されます。幅優先検索は、ソース ノードから開始して徐々にソース ノードから離れていき、グラフの個々のレベルを段階的に実行することによって機能します。これはアニメーションで明確に示されています。
単純な BFS を作成するには、最初から取得して最後まで配置できるデータ構造であるキューを操作でき、グラフをフォームに保存できる必要があります。隣接リストの
アルゴリズムの正式な説明
1) 検索を開始する頂点の番号を最初は空のキューに入れます。
2) キューの先頭から頂点 U を抽出し、別の配列で使用されるようにマークします。
3) キューの最後に、頂点 U からのエッジを使用して到達でき、まだマークされていないすべての頂点を追加します。
4) キューが空の場合は、接続されたグラフのすべてのノードがスキャンされています。そうでない場合は、ステップ 2 に戻ります。
仕事の難しさ
最悪の場合、アルゴリズムはグラフのすべてのノードを訪問するため、グラフを隣接リストの形式で保存する場合、アルゴリズムの時間計算量は O(|V| + |E|) になります (V は集合)グラフの頂点の数、E はエッジのセットです。 ;
言い換えれば、アルゴリズムはエッジの数 + 頂点の数の最悪のケースでも機能します。