この特定の質問に対する答えはO(V + E)であり、木のようなグラフの場合、各頂点が1回だけ探索されるため、それは理にかなっています。
ただし、グラフにサイクルがあるとしましょう。
たとえば、4つの頂点ABCDを持つ無向グラフを取り上げましょう。
AはBとCの両方に接続され、BとCの両方がDに接続されています。したがって、合計で4つのエッジがあります。A-> B、A-> C、B-> D、C-> D、およびその逆。
DFS(A)をやってみましょう。
最初にBを探索し、Bの隣接DとDの隣接Cを探索します。その後、Cにはエッジがないため、DとB、次にAに戻ります。
次に、Aは2番目のエッジをトラバースし、Cを探索しようとします。すでに探索されているため、Aは何も実行せず、DFSは終了します。
しかし、ここでは、頂点「C」が1回ではなく、2回トラバースされています。明らかに最悪の場合の時間計算量はVに正比例する可能性があります。
何か案は?