Wie verwende ich BFS, um den kürzesten Pfad zu finden?
Wie verwende ich BFS, um den kürzesten Pfad zu finden?

Video: Wie verwende ich BFS, um den kürzesten Pfad zu finden?

Video: Wie verwende ich BFS, um den kürzesten Pfad zu finden?
Video: Breitensuche: Kürzeste Wege in Graphen finden 2024, April
Anonim

Zu finden das kürzester Weg , alles, was Sie tun müssen, ist von der Quelle zu starten und a Breite zuerst suchen und aufhören, wenn du finden Ihr Zielknoten. Das einzige, was Sie zusätzlich tun müssen, ist ein Array previous[n], das den vorherigen Knoten für jeden besuchten Knoten speichert. Die vorherige Quelle kann null sein.

Auch gefragt, warum findet BFS den kürzesten Weg?

Wir sagen das BFS ist das Algorithmus zu verwenden, wenn wir wollen Finde den kürzesten Weg in einem ungerichteten, ungewichteten Graphen. Der Anspruch auf BFS ist, dass das erste Mal, wenn ein Knoten während der Durchquerung entdeckt wird, dieser Abstand von der Quelle möchten gib uns die kürzester Weg . Dasselbe gilt nicht für einen gewichteten Graphen.

Wissen Sie auch, wo der kürzeste Weg im Labyrinth ist? Finde den kürzesten Weg in einem Labyrinth

  1. Nach oben: (x, y) –> (x – 1, y)
  2. Nach links gehen: (x, y) –> (x, y – 1)
  3. Nach unten gehen: (x, y) –> (x + 1, y)
  4. Nach rechts gehen: (x, y) –> (x, y + 1)

Können wir auch DFS verwenden, um den kürzesten Pfad zu finden?

Nein, Sie kann nicht Verwenden Sie DFS, um den kürzesten Weg zu finden in einem ungewichteten Diagramm. Es ist nicht so, finden das kürzester Weg zwischen zwei Knoten wird ausschließlich von BFS gelöst. In einem ungewichteten Graphen ist der kürzester Weg sind die kleinste Anzahl von Kanten, die von Quell- zu Zielknoten durchlaufen werden müssen.

Was ist die Laufzeit von BFS?

Komplexität von Breiten-zuerst-Suche Breiten-zuerste Suche hat ein Laufzeit von O (V + E) O(V + E) O(V+E) da jede Ecke und jede Kante einmal geprüft wird. Abhängig von der Eingabe in den Graphen könnte O (E) O(E) O(E) zwischen O (1) O(1) O(1) und O (V 2) O(V^2) O(V2.) liegen).

Empfohlen: