Алгоритм Прима
Алгоритм Прима — это алгоритм в графах, который ищет минимальное остовное дерево во взвешенном связном графе.
Функция алгоритма состоит в том, чтобы найти кратчайший путь, соединяющий все вершины в соответствии с весами в графе, то есть сумму минимальных весов, соединяющих все вершины, которая также является минимальным остовным деревом в этом взвешенном графе.
Шаги алгоритма Прима
1. Выберите в качестве начальной точки одну из вершин ребра с наименьшим весом.
2. Найдите ребро с наименьшим весом из текущей вершины и запишите вершину как выбранную.
3. Повторяйте второй шаг, пока не будут найдены все вершины и минимальное остовное дерево графа.
Временная сложность алгоритма Прима
Предположим, у нас есть V для количества вершин в графе и E для количества ребер в графе.
В простой реализации, представленной графом матрицы смежности, для нахождения всех ребер с наименьшим весом требуетсявремени работы.
Используя простую двоичную кучу и представление списка смежности, время работы алгоритма Прима можно сократить до.
Если используется более сложная куча Фибоначчи, время работы может быть дополнительно сокращено до, что может значительно повысить скорость работы, когда связный граф достаточно плотный.
Пример алгоритма Прима
Найдите минимальное остовное дерево в соответствии с приведенным выше взвешенным связным графом.
Суммировать
Алгоритм Прима состоит в том, чтобы найти ребро с наименьшим весом посредством диффузии вершин, а пройденные вершины и ребра являются минимальным остовным деревом графа. Хранение графов в разных структурах данных может привести к непостоянной временной сложности.Временная сложность использования матрицы смежности составляет, временная сложность двоичной кучи и списка смежности равна
.
PS:
Чистые горы и чистые воды начинаются с пыли, а знания ценнее усердия.
У меня есть вино, у тебя есть история?
Публичный аккаунт WeChat: "болтать".
Добро пожаловать в чат и поговорим о коде.