Изменения

Перейти к: навигация, поиск
Псевдокод
'''function''' solve():
'''for''' <tex> v \in V</tex>:
'''if''' '''not''' visited[<tex>v</tex>] dfs(<tex>v</tex>)
'''for''' <tex> v \in V</tex>:
visited[<tex>v</tex>] = '''falseif''' '''fornot''' visited[<tex> v \in V</tex>]: time = 0 maxColor++ paint(<tex>v</tex>, -1)<br>
Во время алгоритма совершается один проход <tex>dfs</tex>, который работает за <tex>O(|V| + |E|)</tex>. Внутри него совершается еще цикл, который суммарно выполняет <tex>O(|E|)</tex> операций, т.к. каждое ребро может быть добавлено в стек только один раз. Следовательно, общее время работы алгоритма <tex>O(|V| + |E|) + O(|E|) = O(|V| + |E|)</tex>
212
правок

Навигация