Kuinka löydän lyhimmän polun BFS:n avulla?
Kuinka löydän lyhimmän polun BFS:n avulla?

Video: Kuinka löydän lyhimmän polun BFS:n avulla?

Video: Kuinka löydän lyhimmän polun BFS:n avulla?
Video: Kuinka löydät elämäntehtäväsi? 2024, Saattaa
Anonim

Vastaanottaja löytö the lyhin polku , sinun tarvitsee vain aloittaa lähteestä ja suorittaa a leveys ensin etsi ja lopeta kun olet löytö kohdesolmu. Ainoa ylimääräinen asia, joka sinun on tehtävä, on taulukko previous[n], joka tallentaa edellisen solmun jokaiselle vieraillulle solmulle. Lähteen edellinen voi olla tyhjä.

Kysyttiin myös, miksi BFS löytää lyhimmän polun?

Me sanomme sen BFS on algoritmi, jota käytämme, jos haluamme löytää lyhin polku suuntaamattomassa, painottamattomassa kaaviossa. Vaatimus puolesta BFS on se, että kun solmu löydetään ensimmäisen kerran läpikäynnin aikana, tämä etäisyys lähteestä olisi anna meille lyhin polku . Samaa ei voi sanoa painotetusta graafista.

Tiedä myös, missä on lyhin polku sokkelossa? Etsi lyhin polku sokkelosta

  1. Nouse ylös: (x, y) –> (x – 1, y)
  2. Siirry vasemmalle: (x, y) –> (x, y – 1)
  3. Mene alas: (x, y) –> (x + 1, y)
  4. Mene oikealle: (x, y) –> (x, y + 1)

Tietää myös, voimmeko käyttää DFS:ää löytääksemme lyhimmän polun?

Ei, sinä ei voi käytä DFS:ää löytääksesi lyhimmän polun painottamattomassa kaaviossa. Ei ole niin, että löytäminen the lyhin polku kahden solmun välillä ratkaistaan yksinomaan BFS:llä. Painottamattomassa kaaviossa lyhin polku ovat pienin määrä reunoja, jotka täytyy kulkea lähteestä kohdesolmuun.

Mikä on BFS:n käyttöaika?

Monimutkaisuus Leveys ensin Haku Leveys ensin -haku on a käyntiaika O (V + E) O(V + E) O(V+E), koska jokainen kärkipiste ja jokainen reuna tarkistetaan kerran. Riippuen kaavion syötteestä O (E) O(E) O(E) voi olla välillä O (1) O(1) O(1) ja O (V 2) O(V^2) O(V2)).

Suositeltava: