У меня есть общее взвешенное дерево (неориентированный граф без циклов, связанный) с n узлами и n-1 ребрами, соединяющими узел с другим.Сложность алгоритма маркировки дерева
Мой алгоритм выполняет следующие функции:
сделать
вычислить фактический листьев (узлов с 1-й степени)
удалить все листья и их края от маркировки дерева каждый родитель с максимальным значением стоимости его связанных листов (например, если внутренний узел соединен с двумя листами с краями с затратами 5,6, то мы лаборатория эш внутренний узел после удаления листьев с 6)
до дерева имеет размер < = 2
вернет узел с максимальной стоимостью маркированы
Могу ли я сказать, что сложность O(n)
, чтобы вычислить листья и O(n)
, чтобы устранить каждый край с листом, поэтому у меня есть O(n)+O(n) = O(n)
?
Вы оценили сложность одного шага этого алгоритма, а не весь алгоритм. Поскольку вам нужно повторить эту операцию 'O (глубина)' раз, вам нужно учитывать эти повторения. – dasblinkenlight