Hur använder jag BFS för att hitta kortaste vägen?
Hur använder jag BFS för att hitta kortaste vägen?

Video: Hur använder jag BFS för att hitta kortaste vägen?

Video: Hur använder jag BFS för att hitta kortaste vägen?
Video: Volvo FH electric - Berlin-München med bara ett stopp? 2024, Maj
Anonim

Till hitta de kortaste vägen , allt du behöver göra är att börja från källan och utföra en bredd först sök och sluta när du hitta din destinationsnod. Det enda ytterligare du behöver göra är att ha en array föregående[n] som lagrar den föregående noden för varje besökt nod. Det föregående av källan kan vara null.

Frågade också, varför hittar BFS den kortaste vägen?

Det säger vi BFS är algoritm att använda om vi vill hitta den kortaste vägen i en oriktad, oviktad graf. Anspråket för BFS är att första gången en nod upptäcks under genomgången, det avståndet från källan skulle ge oss kortaste vägen . Detsamma kan inte sägas om en viktad graf.

Vet du också, var är den kortaste vägen i labyrinten? Hitta kortaste vägen i en labyrint

  1. Gå upp: (x, y) –> (x – 1, y)
  2. Gå till vänster: (x, y) –> (x, y – 1)
  3. Gå ner: (x, y) –> (x + 1, y)
  4. Gå åt höger: (x, y) –> (x, y + 1)

Också för att veta, kan vi använda DFS för att hitta kortaste vägen?

Nej, du kan inte använd DFS för att hitta den kortaste vägen i en oviktad graf. Det är inte så att, fynd de kortaste vägen mellan två noder löses exklusivt av BFS. I en oviktad graf kortaste vägen är det minsta antalet kanter som måste passeras från käll- till destinationsnoder.

Vad är körtiden för BFS?

Komplexiteten av Breadth First Search Breadth First Search har en körtid av O (V + E) O(V + E) O(V+E) eftersom varje vertex och varje kant kommer att kontrolleras en gång. Beroende på ingången till grafen kan O (E) O(E) O(E) vara mellan O (1) O(1) O(1) och O (V 2) O(V^2) O(V2)).

Rekommenderad: