Primero se crean dos listas que almacenarán nodos, la lista Abiertos, que contiene los nodos que se tienen que expandir, y la lista Cerrados que contiene los que ya han sido expandidos.
El nodo de origen, llamado O en este caso, se mete en la lista de Abiertos para ser expandido.
En este punto, se inicia la propagación de la búsqueda, se crea un bucle que acabará en dos posibles ocasiones: Cuando la lista Abiertos este vacía, o cuando se encuentre el nodo destino.
El bucle consiste en varios pasos:
Primero se obtiene el primer nodo de la lista Abiertos. El nodo a coger el arbitrario, en otros algoritmos se cogería un nodo que cumpliera ciertas propiedades, pero no es lo que se busca aquí.
Si esta lista está vacía, quiere decir que no quedan más candidatos para la expansión, y aun así no se encontró el destino, el algoritmo ha fallado.
Por otra parte, si el nodo que cogimos de la lista Abiertos es el destino, el algoritmo habrá acabado, ya que hemos encontrado el destino. El camino entre el origen y el destino es un conjunto de nodos que se obtendrán guardando cada predecesor del nodo destino.
En otro caso, se seguirá expandiendo la lista, obteniendo una lista de sucesores del nodo actual, y guardando en la lista Abiertos, aquellos nodos que no estuvieran antes en una lista, o con otras palabras, aquellos nodos a los que aún no se había llegado.
De esta forma, el algoritmo acabará encontrando el destino, o recorriendo todo el mapa.

Nota: La animación tiene un fallo, ya que el camino debería de haber empezado en dirección norte en vez de en dirección oeste. Esto ha pasado porque no se metió el cuadro destino en la lista abierta en el momento oportuno (se metió dos turnos más tarde).
El algoritmo trata de llegar desde el cuadro verde (el origen), hasta el cuadro rojo (el destino). La zona negra es un nodo por el que no puede pasar.
Siguiendo el algoritmo, el nodo inicial se irá expandiendo, pasando a estar el nodo actual en la lista Cerrados (color violeta) y metiendo otros nodos en la lista de Abiertos (color azul). Además cada nodo almacenará quien es su predecesor, que está simbolizado con las muescas en los bordes de los cuadrados.
Una vez que la expansión alcanza el nodo destino, se genera un camino siguiendo la cadena de predecesores.
Como se aprecia, la expansión se realiza sin orientación alguna, a lo largo y ancho del espacio. Esto aumentará considerablemente el tiempo de computación, ya que se procesan muchos más nodos que si la expansión estuviera orientada en la dirección del destino.
Otro factor a tener en cuenta es que a pesar de haber alcanzado el nodo destino, el algoritmo no finaliza hasta que lo procesa, o en otras palabras, hasta que pasa a ser el primer nodo de la lista Abiertos.
Estas dos taras, están relacionadas con la prioridad de búsqueda, y en algoritmos más avanzados se corrige mediante el uso de estimadores heurísticos como la distancia manhattan, o la distancia euclídea. Usando estos estimadores el algoritmo procesará primero los nodos de la lista abierta que tengan una menor distancia al origen, evitando así expansiones innecesarias.
Otra desventaja importante del algoritmo, es que no tiene capacidad para resolver cambios inesperados en el mapa. Una vez calculada la ruta, si un obstáculo se interpone en el camino obtenido no se hará absolutamente nada por evitarlo.
Esto se resuelve en algoritmos como D*, que si tienen en cuenta estas variaciones.