← Back to library
アルゴ AIに質問関連 1 問題

BFS

幅優先探索

概要

キューを使ってグラフや木を幅(距離)順に探索するアルゴリズム。出発ノードから近い順に訪問するため、最短経路(辺の重みが等しい場合)を保証できる。グリッドの連結成分(島の数など)を列挙するときも有効。時間計算量は頂点数 VV と辺数 EE の和 O(V+E)O(V + E)。Python では collections.dequepopleftO(1)O(1) のデキューを実現する。

計算量

操作平均最悪
探索(グラフ)
探索(グリッド)

学習メモ

Python の list.pop(0)O(n)O(n) なので必ず collections.dequepopleft() を使う。この一点を意識するだけで TLE を防げる。