Kako da koristim BFS da pronađem najkraći put?
Kako da koristim BFS da pronađem najkraći put?

Video: Kako da koristim BFS da pronađem najkraći put?

Video: Kako da koristim BFS da pronađem najkraći put?
Video: Breadth First Search - Finding Shortest Paths in Unweighted Graphs 2024, Maj
Anonim

To naći the najkraći put , sve što trebate učiniti je početi od izvora i izvršiti a širina prvo pretražite i zaustavite se kada ste naći vaš odredišni čvor. Jedina dodatna stvar koju trebate učiniti je imati niz previous[n] koji će pohraniti prethodni čvor za svaki posjećeni čvor. Prethodni izvor može biti null.

Također je postavljeno pitanje zašto BFS pronalazi najkraći put?

Mi to kažemo BFS je algoritam koji koristimo ako želimo pronađite najkraći put u neusmjerenom, neponderiranom grafu. Zahtev za BFS je da se prvi put otkrije čvor tokom obilaska, ta udaljenost od izvora bi daj nam najkraći put . Isto se ne može reći za ponderisani graf.

Također Znajte, gdje je najkraći put u lavirintu? Pronađite najkraći put u lavirintu

  1. Idi gore: (x, y) –> (x – 1, y)
  2. Idi lijevo: (x, y) –> (x, y – 1)
  3. Idite dolje: (x, y) –> (x + 1, y)
  4. Idi desno: (x, y) –> (x, y + 1)

Također da znam, možemo li koristiti DFS da pronađemo najkraći put?

ne, ti ne mogu koristite DFS da pronađete najkraći put u neponderisanom grafikonu. Nije slučaj da, nalaz the najkraći put između dva čvora isključivo rješava BFS. U neponderisanom grafikonu najkraći put su najmanji broj rubova koji se moraju prijeći od izvornih do odredišnih čvorova.

Koje je vrijeme rada BFS-a?

Složenost of Pretraga u širinu Prvo pretraživanje u širinu ima vrijeme rada od O (V + E) O(V + E) O(V+E) budući da će svaki vrh i svaka ivica biti provjereni jednom. Ovisno o ulazu u graf, O (E) O(E) O(E) može biti između O (1) O(1) O(1) i O (V 2) O(V^2) O(V2).

Preporučuje se: