13-10-2023
Алгоритм Прима — алгоритм построения минимального остовного дерева взвешенного связного неориентированного графа. Алгоритм впервые был открыт в 1930 году чешским математиком Войцехом Ярником, позже переоткрыт Робертом Примом в 1957 году, и, независимо от них, Э. Дейкстрой в 1959 году.
Содержание |
Построение начинается с дерева, включающего в себя одну (произвольную) вершину. В течение работы алгоритма дерево разрастается, пока не охватит все вершины исходного графа. На каждом шаге алгоритма к текущему дереву присоединяется самое лёгкое из рёбер, соединяющих вершину из построенного дерева, и вершину не из дерева.
{} Для каждой вершины
Пока не пуста Для каждой вершины смежной с Если и
Асимптотика алгоритма зависит от способа хранения графа и способа хранения вершин, не входящих в дерево. Если приоритетная очередь реализована как обычный массив , то выполняется за , а стоимость операции составляет . Если представляет собой бинарную пирамиду, то стоимость снижается до , а стоимость возрастает до . При использовании фибоначчиевых пирамид операция выполняется за , а за .
Способ представления графа и приоритетной очереди | Асимптотика |
---|---|
Массив d, списки смежности (матрица смежности) | |
Бинарная пирамида, списки смежности | |
Фибоначчиева пирамида, списки смежности |
Это заготовка статьи по информатике. Вы можете помочь проекту, исправив и дополнив её. |
Алгоритм Прима.