Para controlar los tiempos, te recomiendo que uses la consola de chrome y console.time("identificador"); tu-código-mágico(); console.timeEnd("identificador");
Y que el de pantalaimon sea más rápido que el tuyo, no te preocupes; también es mas rápido que el mío, ya que exprimió la eficiencia hasta posiblemente el extremo xd. De hecho por MP me envió una segunda versión aún más rápida xd.
El mío es éste:
http://jsfiddle.net/marlanga/EdZSy/
En él puedes ver cómo combinar tus arrays de soluciones para formar cadenas de soluciones, que es lo que pedía. Eso tiene un pequeño coste de procesamiento, que hará que tu algoritmo tarde aún más xd.
Y como decía, es más lento que el de pantalaimon, pero oye, al menos es mas sencillo de entender, alguna ventaja tenía que tener xd.
Y ahora no sé que hacer; no creo que venga mucha más gente a participar, y encima los pocos que lo han hecho, me dan confianza de continuidad solo vosotros dos xd.
¿Pongo otro, o morimos en paz?