Al atravesar un gráfico con múltiples conexiones, el orden en que se atraviesan los nodos puede influir en gran medida (en muchos órdenes de magnitud) en el número de nodos que se seguirán por el método de desplazamiento. Algún tipo de algoritmo será mucho mejor cuando se usa el ancho primero; otros serán masivamente mejores cuando usen la búsqueda de profundidad.
En un extremo, hacer una búsqueda en profundidad en un árbol binario con N nodos de hoja requiere que el método de desplazamiento realice un seguimiento de nodos lgN mientras que una búsqueda amplia requerirá realizar un seguimiento de al menos N/2 nodos (ya que podría escanear todos los demás nodos antes de escanear cualquier nodo hoja, inmediatamente antes de escanear el primer nodo hoja, se habría encontrado con N/2 de los nodos padre de las hojas que deben rastrearse por separado ya que ninguno de ellos se referencia entre sí) .
En el otro extremo, haciendo un relleno de inundación en una cuadrícula NxN con un método que, si su píxel no se ha coloreado aún, colorea ese píxel y luego inunda a sus vecinos requerirá poner en O (N) coordenadas de píxel si se usa la búsqueda de amplitud, pero O (N^2) coordenadas de píxel si se usa profundidad-primero. Cuando se utiliza la búsqueda de amplitud, la pintura parece "extenderse", independientemente de la forma que se va a pintar; cuando se usa un algoritmo de profundidad para pintar una espiral rectangular, cada línea recta en un lado y dentada en el otro (los lados deben ser rectos y dentados depende del algoritmo exacto utilizado), todas las secciones rectas se pintarán antes de cualquiera de los irregulares, lo que significa que el sistema debe rastrear la ubicación de cada jalón por separado.
ver http://stackoverflow.com/questions/687731/breadth-first-vs-depth-first ... contiene información útil y enlaces, incluyendo 3 partes de blog vinculadas en una de las dos últimas respuestas. – hatchet
Gracias por compartir esto. Parece realmente útil. En realidad, entiendo cómo funcionan ambos algoritmos, solo quiero saber por qué necesitamos dos de ellos :) – Kris
similar a http://stackoverflow.com/questions/1657174/what- is-width-first-search-useful-for – hatchet