Tecnología

Inicio

Cuál es la complejidad de tiempo de una búsqueda primero en profundidad?

Cuál es la complejidad de tiempo de una búsqueda primero en profundidad?


Una búsqueda en profundidad es un algoritmo que procesalmente busca en una estructura de árbol gráfico o al viajar lo más abajo del árbol, ya que puede antes de realizar copias de seguridad. El tiempo que el algoritmo toma para terminar depende del número de nodos en el gráfico. En el peor de los casos, el algoritmo debe visitar cada nodo en el gráfico.

árbol gráficos

En el contexto de gráficos, un árbol es un gráfico en el que cada nodo excepto el nodo de origen "raíz" tiene un único nodo padre cuyo linaje se remonta al nodo raíz. El gráfico forma una estructura similar a la de un árbol de Navidad, la ampliación y la adición de nuevos nodos y los niños en cada nivel gradualmente. En un árbol, el número de hijos de cada nodo tiene es "factor de ramificación." Del árbol El número de generaciones en el árbol es "profundidad." Del árbol

Profundidad-primera búsqueda

Una búsqueda en profundidad es un método de búsqueda a través de un árbol, en el que el algoritmo de baja por el árbol hasta que encuentra el nodo de destino. A partir del nodo raíz, el algoritmo camina hasta el próximo hijo y luego nieto de ese niño, repitiendo el proceso hasta que encuentra un nodo sin hijos "hoja". Después de que encuentre ese nodo, camina hacia atrás hasta que encuentre un nodo sin examinar. Si no hay más nodos examinados, que se detenga.

Algoritmo de tiempo Complejidad

El tiempo para recorrer un árbol a través de la búsqueda en profundidad depende del número de vértices en el gráfico y los bordes entre ellos. En el peor de los casos, el algoritmo debe viajar a través de cada vértice ya lo largo de todos los bordes, por lo que el tiempo que tomará es el número de vértices y el número de bordes, o "V + E." Para un árbol, el número de aristas es igual a los nodos menos uno, por lo que el tiempo total es "2V - 1." Si cada nodo en el gráfico tiene el mismo número de niños - un factor de ramificación constante - a continuación, este tiempo es igual a ese factor elevado a la potencia de la profundidad del árbol.

Otras Consideraciones

Al implementar cualquier algoritmo, la velocidad del algoritmo depende de dos factores: el número de cálculos que debe realizar y el tiempo necesario para acceder a los recursos que necesita para funcionar - por lo general la memoria. Cuanta más memoria un programa requiere, cuanto más tiempo se tarda en ejecutar. Una búsqueda en profundidad debe recordar los nodos anteriores que visitó, por lo que la cantidad del peor caso de la memoria que requiere es igual al número de nodos en el árbol.