Hoe gebruik ik BFS om het kortste pad te vinden?
Hoe gebruik ik BFS om het kortste pad te vinden?

Video: Hoe gebruik ik BFS om het kortste pad te vinden?

Video: Hoe gebruik ik BFS om het kortste pad te vinden?
Video: 4х слойная плата и кому она может пригодится? И почему многие игнорируют ее наличие? 2024, Mei
Anonim

Tot vind de Kortste weg , alles wat je hoeft te doen is beginnen bij de bron en een breedte eerst zoeken en stoppen wanneer u vind uw bestemmingsknooppunt. Het enige extra dat u hoeft te doen, is een array previous[n] hebben die het vorige knooppunt voor elk bezocht knooppunt opslaat. De vorige van de bron kan nul zijn.

Ook gevraagd, waarom vindt BFS het kortste pad?

Wij zeggen dat BFS is de algoritme dat we kunnen gebruiken als we dat willen vind de kortste weg in een ongerichte, ongewogen grafiek. de vordering voor BFS is dat de eerste keer dat een knoop wordt ontdekt tijdens de traversal, die afstand tot de bron zou geef ons de Kortste weg . Hetzelfde kan niet gezegd worden van een gewogen grafiek.

Weet ook, waar is het kortste pad in het doolhof? Vind het kortste pad in een doolhof

  1. Omhoog gaan: (x, y) -> (x – 1, y)
  2. Ga naar links: (x, y) -> (x, y - 1)
  3. Omlaag: (x, y) -> (x + 1, y)
  4. Ga naar rechts: (x, y) -> (x, y + 1)

Ook om te weten, kunnen we DFS gebruiken om het kortste pad te vinden?

Nee, jij kan niet gebruik DFS om het kortste pad te vinden in een ongewogen grafiek. Het is niet zo dat, vinden de Kortste weg tussen twee knooppunten wordt exclusief opgelost door BFS. In een ongewogen grafiek is de Kortste weg zijn het kleinste aantal randen dat moet worden doorlopen van bron- naar bestemmingsknooppunten.

Wat is de looptijd van BFS?

Complexiteit van Breedte eerst zoeken Breedte eerst zoeken heeft een lopende tijd van O (V + E) O(V + E) O(V+E) aangezien elk hoekpunt en elke rand één keer wordt gecontroleerd. Afhankelijk van de invoer in de grafiek, kan O (E) O(E) O(E) tussen O (1) O(1) O(1) en O (V 2) O(V^2) O(V2) liggen).

Aanbevolen: