
Permutaciones de un array
JavaScript
Publicado el 26 de Junio del 2021 por Katas (200 códigos)
15.995 visualizaciones desde el 26 de Junio del 2021
Genera todas las permutaciones de los elementos de una matriz (contiene duplicados).
Usa la recursividad. Para cada elemento de la matriz dada, cree todas las permutaciones parciales para el resto de sus elementos. Use Array.prototype.map() para combinar el elemento con cada permutación parcial, luego Array.prototype.reduce() para combinar todas las permutaciones en una matriz. Los casos base son para una longitud de matriz igual a 2 o 1.
ADVERTENCIA: El tiempo de ejecución de esta función aumenta exponencialmente con cada elemento de la matriz. Cualquier cantidad de más de 8 a 10 entradas hará que su navegador se cuelgue mientras intenta resolver todas las diferentes combinaciones.
Usa la recursividad. Para cada elemento de la matriz dada, cree todas las permutaciones parciales para el resto de sus elementos. Use Array.prototype.map() para combinar el elemento con cada permutación parcial, luego Array.prototype.reduce() para combinar todas las permutaciones en una matriz. Los casos base son para una longitud de matriz igual a 2 o 1.
ADVERTENCIA: El tiempo de ejecución de esta función aumenta exponencialmente con cada elemento de la matriz. Cualquier cantidad de más de 8 a 10 entradas hará que su navegador se cuelgue mientras intenta resolver todas las diferentes combinaciones.
1
2
permutations([1, 2, 3]); // [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]
permutations(["a", "b", "c"]); // ["a", "b", "c"], ["a", "c", "b"], ["b", "a", "c"], ["b", "c", "a"], ["c", "a", "b"], ["c", "b", "a"]