Я пытаюсь понять временную сложность некоторых эффективных методов обнаружения циклов в графе.
Здесь объясняется два подхода . Я бы предположил, что временная сложность обеспечивается в наихудшем случае.
Первый - это поиск объединения, который, как говорят, имеет временную сложность O (Vlog E).
Второй использует подход, основанный на DFS и, как говорят, имеет временную сложность O (V + E). Если я прав, это асимптотически более эффективная сложность, чем O (Vlog E). Также удобно, что подход, основанный на DFS, можно использовать для ориентированных и неориентированных графов.
Моя проблема в том, что я не вижу, как можно считать, что второй подход выполняется за время O (V + E), потому что DFS выполняется за время O (V + E), а алгоритм проверяет узлы, смежные с любые обнаруженные узлы для начального узла. Конечно, это будет означать, что алгоритм выполняется за время O (V 2 ), потому что до V-1 смежных узлов, возможно, придется пройти через каждый обнаруженный узел? Очевидно, что более чем одному узлу невозможно требовать обхода n-1 смежных узлов, но, насколько я понимаю, это все равно будет верхняя граница времени выполнения.
Надеюсь, кто-то понимает, почему я так думаю, и может помочь мне понять, почему сложность O (V + E).