Анализ поиска в глубину¶
В общем случае время выполнения поиска в глубину следующее. Оба цикла в dfs
выполняются за O(V) (без учёта происходящего в dfsvisit
), поскольку они вычисляются по одному разу для каждой вершины графа. Цикл в dfsvisit
вычисляется один раз для каждого ребра из списка смежности текущей вершины. Поскольку dfsvisit
вызывается рекурсивно только в том случае, если вершина окрашена в белый, то цикл для каждого ребра графа выполнится максимум единожды (O(E)). Таким образом, общее время выполнения поиска в глубину равно O(V+E).