Беллмана-Форда Алгоритм: кратчайшего пути от источника ко всем другим узлам в весовых ориентированного графа, даже с -eve вес ребра (не цикл). медленнее, но универсальнее, чем Дийсктра. Сложность: O (| V | | Е |.)
BFS: Найти путь от одной вершины к данной другим узлам в ун-взвешенный граф ун-направленный. Сложность: O (| V | + | E |). это быстрее, когда вы знаете вершины вперед и используете соответствующую структуру данных i.е FIFO Que для выяснить, которые уже обработано вершину, чем сложность может быть уменьшен до O (| V |)
DFS: Найти кратчайший путь от источника к другим узлам. в дереве, а также в графе. График может содержать цикл, который означает, что узел можно было бы посещать снова и снова. поэтому мы можем использовать логический массив для отслеживания посещенных узлов. иначе алгоритм не остановится. Более того, он выглядит глубже и глубже и доходит до конца ветки в дереве. Сложность: O (| V | + | E |). и Сложность: O (| V |) пространство для хранения вершин.
Floyed Warshal Алгоритм: Найти все пары кратчайшего пути в графе Directed невзвешенной с + накануне, -eve (не цикл) кромка веса. но он не возвращает детали самих путей. его можно использовать для определения -веса весового цикла в графе. когда он находит один, он заканчивается. он сравнивает весь возможный путь через график между каждой парой вершин. поэтому он использует динамический подход, а не жадный подход. Сложность: O (| V^3 |)
Джонсона Алгоритма: найти все пары кратчайшего пути в взвешенном ориентированном графе разреженного, когда края веса + Ева, -eve, но не -eve цикл. Он сначала использует алгоритм belman-ford для вычисления преобразованного графа из исходного графика. он удаляет -eve веса края. то Дейкстра применяется для поиска путей. Сложность: O (V^2 Вход V + VE)
Дейкстры Алгоритм: оригинальная версия этого алгоритма не использует приоритет Que так Сложность O (| V^2 |) но более новая версия использует эту структуру данных, поэтому сложность становится O (E + V log V). и это более быстрый алгоритм кратчайшего пути с одним источником. он работает, назначая предварительный вес посещаемому узлу и бесконечности для не посещаемых узлов для посещенного узла, который ищет все его нераскрытые края и выбирает с минимальным весом. и добавьте его в набор путей.
Алгоритм Krushkal's:, чтобы найти MST, где он находит край наименьшего возможного веса, который соединяет любые два дерева в лесу с ненаправленным взвешенным графиком. это жадный алгоритм. он также находит минимальный лепесток. Сложность: О (Е лог V)
Алгоритм Прима: он находит подмножество ребер, которые образуют дерево на не направлено, взвешенного графа. но не может найти MS Forest, как алгоритм Крушкала.
Алгоритм Brouvka: Проблема с этим алгоритмом заключается в том, что веса должны быть уникальными в графе. он находит MST, исследуя каждую вершину, а затем помещая ее с меньшим весом. этот алгоритм параллелен природе, но не быстрее, чем алгоритм Прима.
Такая же сложность, как алгоритм Крушкала.
TADM был только что упомянут (еще раз спасибо!), Но я обязательно проверю второй. – jlv