¿Cómo se puede encontrar la complejidad del tiempo para el recorrido DFS?

BFS:

La complejidad temporal es O(|V|) donde |V| es el número de nodos, debe atravesar todos los nodos.
La completitud del espacio también es O(|V|) , ya que en el peor de los casos debe mantener todos los vértices en la cola.

DFS:

La complejidad temporal es nuevamente O(|V|) , necesita atravesar todos los nodos.
Complejidad del espacio: depende de la implementación, una implementación recursiva puede tener una complejidad de espacio O(h) [el peor de los casos], donde h es la profundidad máxima de su árbol.
Usar una solución iterativa con una pila es en realidad lo mismo que BFS, solo usar una pila en lugar de una cola, por lo que obtienes tanto O(|V|) como complejidad de tiempo y espacio.

(*) Tenga en cuenta que la complejidad del espacio y la complejidad del tiempo es un poco diferente para un árbol que para los gráficos generales porque no es necesario mantener un conjunto visited para un árbol, y |E| = O(|V|) |E| = O(|V|) , entonces el |E| El factor es en realidad redundante.

BFS:

La complejidad temporal es O(|V|) donde |V| es el número de nodos, debe atravesar todos los nodos.
La completitud del espacio también es O(|V|) , ya que en el peor de los casos debe mantener todos los vértices en la cola.

DFS:

La complejidad temporal es nuevamente O(|V|) , necesita atravesar todos los nodos.
Complejidad del espacio: depende de la implementación, una implementación recursiva puede tener una complejidad de espacio O(h) [el peor de los casos], donde h es la profundidad máxima de su árbol.
Usar una solución iterativa con una pila es en realidad lo mismo que BFS, solo usar una pila en lugar de una cola, por lo que obtienes tanto O(|V|) como complejidad de tiempo y espacio.

(*) Tenga en cuenta que la complejidad del espacio y la complejidad del tiempo es un poco diferente para un árbol que para los gráficos generales porque no es necesario mantener un conjunto visited para un árbol, y |E| = O(|V|) |E| = O(|V|) , entonces el |E| El factor es en realidad redundante.

Fuente: ¿Cuál es la complejidad de tiempo y espacio de un primer recorrido de primer árbol de profundidad y profundidad?

Espero que esto ayude

Gracias

More Interesting

¿Cuál es el propósito de estudiar pequeñas mejoras (como usar dos hilos o evitar la basura) mientras puedo reducir la complejidad de los algoritmos?

¿Cuáles son los algoritmos de coincidencia de patrones más comunes?

¿Cuántos años se necesitan para aprender algoritmos de cero a héroe?

Cómo implementar Dropconnect usando TensorLayer

¿Cuál es la forma más fácil de eliminar elementos duplicados de una matriz de derecha a izquierda?

¿Cuál es la relación entre los algoritmos y las IA (modernas)?

¿Pueden los intrones tener longitudes que no sean múltiplos de 3 (lo que complicaría seriamente los algoritmos de predicción de genes)?

¿Cómo se calculan los tiempos de conducción de Google Maps?

¿Cuáles son las diferentes formas en que puede obtener la longitud de una matriz en C ++?

¿Qué es un árbol en el estudio de estructuras de datos y algoritmos?

¿Es imprescindible aprender estructuras de datos y algoritmos si quiero convertirme en desarrollador de backend?

¿Cuál es un buen algoritmo para el problema de la mochila 0-1 cuando los pesos están positivamente relacionados con los valores?

Con los algoritmos de cifrado modernos, ¿es factible que alguien sepa qué algoritmo se utilizó al mirar el texto cifrado?

¿Cuál es la forma más eficiente de recoger pelotas de tenis en una cancha?

Cómo mejorar en algoritmos, estructuras de datos y programación competitiva, solo por puro aprendizaje, así como por ubicaciones en empresas de primer nivel, en un año