Jak mohu použít BFS k nalezení nejkratší cesty?
Jak mohu použít BFS k nalezení nejkratší cesty?

Video: Jak mohu použít BFS k nalezení nejkratší cesty?

Video: Jak mohu použít BFS k nalezení nejkratší cesty?
Video: 5. přednáška BI-PSI 2020/21 2024, Prosinec
Anonim

Na nalézt a nejkratší cesta , vše, co musíte udělat, je začít od zdroje a provést a nejprve šířka hledejte a zastavte se, až budete nalézt váš cílový uzel. Jediná další věc, kterou musíte udělat, je mít pole previous[n], které bude ukládat předchozí uzel pro každý navštívený uzel. Předchozí zdroj může být nulový.

Také se zeptal, proč BFS nachází nejkratší cestu?

Říkáme to BFS je algoritmus, který použijeme, pokud chceme najít nejkratší cestu v neorientovaném, neváženém grafu. Nárok na BFS je, že při prvním objevení uzlu během průchodu je tato vzdálenost od zdroje bych dej nám nejkratší cesta . Totéž nelze říci o váženém grafu.

Také víte, kde je nejkratší cesta v bludišti? Najděte nejkratší cestu v bludišti

  1. Přejít nahoru: (x, y) –> (x – 1, y)
  2. Jděte doleva: (x, y) –> (x, y – 1)
  3. Přejít dolů: (x, y) –> (x + 1, y)
  4. Jděte doprava: (x, y) –> (x, y + 1)

Také vědět, můžeme použít DFS k nalezení nejkratší cesty?

Ne, vy nemůže použijte DFS k nalezení nejkratší cesty v neváženém grafu. Není tomu tak, nález a nejkratší cesta mezi dvěma uzly řeší výhradně BFS. V neváženém grafu je nejkratší cesta jsou nejmenší počet hran, které musí být překročeny od zdrojových k cílovým uzlům.

Jaká je provozní doba BFS?

Složitost Hledání nejprve do šířky Hledání napřed do šířky má čas běhu of O (V + E) O(V + E) O(V+E), protože každý vrchol a každá hrana budou zkontrolovány jednou. V závislosti na vstupu do grafu může být O (E) O(E) O(E) mezi O (1) O(1) O(1) a O (V 2) O(V^2) O(V2).

Doporučuje: