2015-09-15 2 views
-2

Не могли бы вы помочь мне с этой проблемой?Модифицированная версия алгоритма Прима с временной сложностью O (kn + m)

Учитывая неориентированный граф G , связанный с взвешенными дугами, таким образом, что весовые коэффициенты являются целыми числами в [1, K]. Напишите модифицированную версию алгоритма Prim, который возвращает минимальное остовное дерево в O (kn + m) время.

Примечание:

  • п представляет число вершин
  • м представляет собой число ребер

ответ

0

Вы должны использовать ограниченный диапазон длины кромки. Это поможет вам сохранить приоритетную очередь ребер более эффективно. Имейте в виду, что наиболее важным шагом в алгоритме является поиск края минимального веса, соединяющего дерево, построенное до сих пор, с узлом, еще не добавленным к дереву. Попытайтесь использовать counting sort в качестве вдохновения.

+0

Спасибо за ответ, моя первая попытка состояла в том, чтобы упорядочить края, используя сортировку ковша, которая имеет _O (n + k) _ сложность времени. Как вы предположили, это должно улучшить производительность приоритетной очереди в этом сценарии. Если я не ошибаюсь, _O (kn + m) _ задается функцией deleteMin, которая может быть выполнена в _O (k) _ time вместо _O (logn) _. Это верно? – Matt

Смежные вопросы