Al explorar un museo, ¿es mejor usar BFS o DFS?

Por supuesto un DFS.

Solo imagina entrar a un museo. ¿Quieres más para:

1) entra en la primera habitación, luego la que está al lado, y así sucesivamente hasta que regreses (en realidad, muchos museos son uniones de ciclos, es decir, al ir directamente te encuentras en la primera habitación nuevamente); O

2) Visite la primera sala de la primera exposición. Regrese al pasillo y visite la primera sala de la segunda exposición. Regrese al pasillo y visite la primera sala de la tercera exposición. Como (digamos) solo hay tres exposiciones, luego regresas a la segunda habitación de la primera exposición, luego vuelves a la segunda habitación de la segunda exposición, y así sucesivamente …

Creo que podría estar de acuerdo en que la segunda estrategia no sería muy inteligente; de hecho es BFS.

Verá, en el mundo real, no puede explorar nodos sin llegar a ellos a través de sus vecinos; eso significa que, mientras que con DFS visita una habitación como máximo dos veces, con BFS puede verla muchas, muchas veces más.

Como solo hay uno de ustedes y desea ver todo el museo, realmente no tiene otra opción. ¿Cómo tratarías de hacer un BFS?

More Interesting

Cómo escribir un programa para encontrar la frecuencia de la presencia de un elemento en una matriz en C ++

¿Cuáles son las ventajas y desventajas de los algoritmos y la heurística en la resolución de problemas?

Insertar un elemento en un montón toma O (log n). ¿Aún si insertamos n elementos en el montón, resulta ser O (n)?

¿Cuáles son las capacidades máximas de almacenamiento de las estructuras de datos (pila, cola, listas enlazadas)?

¿Cuál es el algoritmo más adecuado para la agrupación en una red social?

¿Puedo hacer que un usuario de matriz ingrese su tamaño?

¿Se aplica la ley de Moore a los algoritmos informáticos?

Estoy tomando un curso en línea, Algorithms Part 1 de Sedgewick y Wayne en Coursera. Conozco bastante a Java, pero me llevó más de un día llegar a la mitad de la resolución de la primera tarea de programación. ¿Debería dejarlo? ¿Todos sienten lo mismo mientras aprenden sobre algoritmos?

¿Cuál es la diferencia entre el árbol de búsqueda binario y la búsqueda binaria?

¿Qué es el retroceso en algoritmos?

¿Hay alguna relación de recurrencia famosa aparte de Fibonacci?

¿Existe un límite superior para la capacidad de comprensión de un individuo? Si es así, ¿qué se debe hacer para mejorarlo?

¿Debo usar una matriz o un objeto para implementar una clase de cola de JavaScript?

¿Cuál es el algoritmo de fuerza bruta O (n!) Para calcular las rutas más largas?

¿Resolver problemas en Topcoder / Codeforces es una buena manera de aprender Java Collections Framework?