Ең қысқа жолды табу үшін BFS қалай пайдаланамын?
Ең қысқа жолды табу үшін BFS қалай пайдаланамын?

Бейне: Ең қысқа жолды табу үшін BFS қалай пайдаланамын?

Бейне: Ең қысқа жолды табу үшін BFS қалай пайдаланамын?
Бейне: Саған ең қажетті үш дұға..! #білежүріңіз 2024, Қараша
Anonim

Кімге табу the ең қысқа жол , сізге тек көзден бастап, а орындау керек алдымен кеңдік іздеңіз және қашан тоқтатыңыз табу тағайындалған түйін. Сізге қажет жалғыз қосымша нәрсе - әрбір кірген түйін үшін алдыңғы түйінді сақтайтын алдыңғы [n] массиві болуы. Көздің алдыңғысы нөл болуы мүмкін.

Сондай-ақ, BFS неге ең қысқа жолды табады деп сұрады.

Соны айтамыз BFS - бұл Алгоритмді қаласақ ең қысқа жолды табыңыз бағытталмаған, өлшенбеген графикте. үшін талап BFS тораптың өту кезінде бірінші рет ашылуы, бұл көзден осы қашықтық болар еді бізге беріңіз ең қысқа жол . Салмақталған график үшін де дәл осылай айту мүмкін емес.

Сондай-ақ біліңіз, лабиринттегі ең қысқа жол қай жерде? Лабиринттегі ең қысқа жолды табыңыз

  1. Жоғары көтерілу: (x, y) –> (x – 1, y)
  2. Солға өту: (x, y) –> (x, y – 1)
  3. Төменге өту: (x, y) –> (x + 1, y)
  4. Оңға бұрылу: (x, y) –> (x, y + 1)

Сондай-ақ білу үшін, біз ең қысқа жолды табу үшін DFS пайдалана аламыз ба?

Жоқ, сен мүмкін емес ең қысқа жолды табу үшін DFS пайдаланыңыз өлшенбеген графикте. Олай емес, табу the ең қысқа жол екі түйін арасындағы мәселені тек BFS шешеді. Салмақсыз графикте ең қысқа жол көзден тағайындалған түйіндерге өту керек жиектердің ең аз саны.

BFS жұмыс уақыты қандай?

Күрделілігі Кеңінен бірінші іздеу Кеңінен бірінші іздеу бар жүгіру уақыты O (V + E) O(V + E) O(V+E) саны, өйткені әрбір шыңы мен әрбір жиегі бір рет тексеріледі. Графикке енгізуге байланысты O (E) O(E) O(E) O (1) O(1) O(1) және O (V 2) O(V^2) O(V2) арасында болуы мүмкін.).

Ұсынылған: