Как мне найти кратчайший путь с помощью BFS?
Как мне найти кратчайший путь с помощью BFS?

Видео: Как мне найти кратчайший путь с помощью BFS?

Видео: Как мне найти кратчайший путь с помощью BFS?
Видео: Поиск в ширину (BFS) 2024, Ноябрь
Anonim

К найти в кратчайший путь , все, что вам нужно сделать, это начать с источника и выполнить в ширину ищи и останавливайся, когда ты найти ваш пункт назначения Node. Единственное, что вам нужно сделать, это иметь массив previous [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, чтобы найти кратчайший путь на невзвешенном графике. Это не тот случай, находка в кратчайший путь между двумя узлами решается исключительно 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).).

Рекомендуемые: