Permutacion por recursividad en java
Java
Publicado el 15 de Julio del 2020 por Adan (10 códigos)
3.024 visualizaciones desde el 15 de Julio del 2020
Obtiene todas las permutaciones de una cadena o texto de n grupo
public class Permutacion {
public static void main(String args[])
{
String alfabeto="abcd";
char[] elementos=alfabeto.toCharArray();
generarPermutaciones(elementos,"",3);
}
public static void generarPermutaciones(char[] elementos,String actual,int cantidad)
{
if (cantidad==0)
{
System.out.println(actual);
}else
{
for (int i=0;i<elementos.length;i++)
{
generarPermutaciones(elementos,actual+elementos[i],cantidad-1);
}
}
}
}
resultado en la consola:
aaa
aab
aac
aad
aba
abb
abc
abd
aca
acb
acc
acd
ada
adb
adc
add
baa
bab
bac
bad
bba
bbb
bbc
bbd
bca
bcb
bcc
bcd
bda
bdb
bdc
bdd
caa
cab
cac
cad
cba
cbb
cbc
cbd
cca
ccb
ccc
ccd
cda
cdb
cdc
cdd
daa
dab
dac
dad
dba
dbb
dbc
dbd
dca
dcb
dcc
dcd
dda
ddb
ddc
ddd
Comentarios sobre la versión: 1.0 (2)
gracias por la aportación
para romper contraseñas, este ejemplo, en lugar de salvarlo a un archivo la salida, seria checar una por una, o de 100 o 1000, pero así agrandaría de manera exponencial el tiempo de ejecución, pero debe de haber algo mas, óptimo, ya que el espacio en disco es arriba de 134586 tb, donde esta ese espacio.
salidos
pd las contraseña entre mas largas es mejor, seria conveniente una frase. o enunciado.
Eso haría de ser casi imposible descubrirla