Hvordan bruger jeg BFS til at finde den korteste vej?
Hvordan bruger jeg BFS til at finde den korteste vej?

Video: Hvordan bruger jeg BFS til at finde den korteste vej?

Video: Hvordan bruger jeg BFS til at finde den korteste vej?
Video: Shortest Path using BFS Algorithm | Unweighted Graph | BFS | DFS | GATE | DSA 2024, November
Anonim

Til Find det korteste vej , alt du skal gøre er at starte fra kilden og udføre en bredde først søg og stop, når du Find din destinationsknude. Den eneste ekstra ting, du skal gøre, er at have et array forrige[n], som gemmer den forrige node for hver besøgte node. Det forrige af kilden kan være nul.

Også spurgt, hvorfor finder BFS den korteste vej?

Det siger vi BFS er algoritme at bruge, hvis vi vil finde den korteste vej i en urettet, uvægtet graf. Kravet om BFS er, at første gang en knude opdages under gennemkørslen, er den afstand fra kilden ville giv os korteste vej . Det samme kan ikke siges om en vægtet graf.

Ved også, hvor er den korteste vej i labyrinten? Find den korteste vej i en labyrint

  1. Gå op: (x, y) –> (x – 1, y)
  2. Gå til venstre: (x, y) –> (x, y – 1)
  3. Gå ned: (x, y) –> (x + 1, y)
  4. Gå til højre: (x, y) –> (x, y + 1)

Også for at vide, kan vi bruge DFS til at finde den korteste vej?

Ingen, du kan ikke brug DFS til at finde den korteste vej i en uvægtet graf. Det er ikke sådan, at finde det korteste vej mellem to noder løses udelukkende af BFS. I en uvægtet graf korteste vej er det mindste antal kanter, der skal krydses fra kilde- til destinationsknudepunkter.

Hvad er køretiden for BFS?

Kompleksiteten af Breadth First Search Breadth First Search har en løbe tid af O (V + E) O(V + E) O(V+E), da hvert toppunkt og hver kant vil blive kontrolleret én gang. Afhængigt af input til grafen kan O (E) O(E) O(E) være mellem O (1) O(1) O(1) og O (V 2) O(V^2) O(V2)).

Anbefalede: