Hvordan bruker jeg BFS for å finne korteste vei?
Hvordan bruker jeg BFS for å finne korteste vei?

Video: Hvordan bruker jeg BFS for å finne korteste vei?

Video: Hvordan bruker jeg BFS for å finne korteste vei?
Video: Breadth First Search Algorithm | Shortest Path | Graph Theory 2024, Kan
Anonim

Til finne de korteste vei , alt du trenger å gjøre er å starte fra kilden og utføre en bredde først søk og stopp når du finne din destinasjonsnode. Det eneste ekstra du trenger å gjøre er å ha en matrise forrige[n] som vil lagre den forrige noden for hver node som besøkes. Den forrige kilden kan være null.

Også spurt, hvorfor finner BFS den korteste veien?

Vi sier det BFS er algoritme å bruke hvis vi vil finne den korteste veien i en urettet, uvektet graf. Kravet om BFS er at den første gangen en node oppdages under kryssingen, den avstanden fra kilden ville gi oss korteste vei . Det samme kan ikke sies for en vektet graf.

Vet også, hvor er den korteste veien i labyrinten? Finn korteste vei i en labyrint

  1. Gå opp: (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øyre: (x, y) –> (x, y + 1)

Også for å vite, kan vi bruke DFS for å finne korteste vei?

Nei, du kan ikke bruk DFS for å finne korteste vei i en uvektet graf. Det er ikke slik at finne de korteste vei mellom to noder løses utelukkende av BFS. I en uvektet graf korteste vei er det minste antallet kanter som må krysses fra kilde- til destinasjonsnoder.

Hva er kjøretiden til BFS?

Kompleksiteten til Breadth First Search Breadth First Search har en driftstid av O (V + E) O(V + E) O(V+E) siden hvert toppunkt og hver kant vil bli kontrollert én gang. Avhengig av input til grafen, kan O (E) O(E) O(E) være mellom O (1) O(1) O(1) og O (V 2) O(V^2) O(V2)).

Anbefalt: