В алгоритме Прима есть шаг, где вы должны получить «ближайшую» вершину.Этот шаг будет стоить O (N) при использовании обычного массива, но потребуется только O (logN), если вы используете приоритетную очередь (например, кучу)
Следовательно, причина использования приоритетной очереди состоит в том, чтобы уменьшитьвременная сложность алгоритма (что означает, что ваша программа работает быстрее)
**
Обновление:
**
Вот описание алгоритма Прима из Wikipedia .Жирная часть - это часть для нахождения ближайшей вершины, о которой я говорил:
Входные данные: непустой связный взвешенный граф с вершинами V и ребрами E (веса могут быть отрицательными).
Initialize: Vnew = {x}, где x - произвольный узел (начальная точка) из V, Enew = {}
Повторяется до Vnew = V: Выберите ребро (u, v) с минимальным весомтакой, что u находится в Vnew, а v не (если есть несколько ребер с одинаковым весом, можно выбрать любой из них) Добавьте v к Vnew и (u, v) к Enew
Вывод: Vnew и Enew описывают минимальное связующее дерево