Permutación en Java explicada [con ejemplos de codificación]
Publicado: 2020-11-24JAVA fue desarrollado por James Gosling en Sun Microsystems en el año 1995. Con JAVA, los desarrolladores pueden crear aplicaciones estables, seguras y resistentes que pueden ejecutarse en casi cualquier plataforma, incluidos los sistemas operativos basados en Linux, Windows y macOS.
La propiedad Write Once, Run Always de JAVA (también conocida como WORA) también ahorra la necesidad de volver a compilar el código que ya se ha compilado satisfactoriamente una vez. Esta versatilidad de JAVA lo convierte en un lenguaje ideal para integrar funciones lógicas y matemáticas complejas incorporadas en casi todos los tipos de aplicaciones multiplataforma.
Las ventajas de usar JAVA para desarrollar aplicaciones web, a diferencia de cualquier otro entorno de desarrollo web alternativo (o popular), se extienden a tres pilares principales de los beneficios sostenidos de las aplicaciones, a saber:
- La sintaxis de JAVA es fácil de aprender y adaptarse, y es adecuada para codificadores en todos los niveles de ritmo y complejidad. Esto convierte a JAVA en una apuesta segura para los equipos de desarrollo que están sujetos a frecuentes cambios de personal. El tiempo que tarda un nuevo recurso en alinearse con la plataforma de desarrollo común (JAVA) es uno de los menores de la industria.
- JAVA es un lenguaje de programación orientado a objetos de alto nivel, lo que lo convierte en un enfoque completamente modular y brinda a los desarrolladores la capacidad de crear fragmentos de código funcionalmente reutilizables, lo que reduce el esfuerzo. Una amplia biblioteca de funciones integradas también reduce las dependencias de otros complementos terciarios o complementos del compilador, scripts, etc., lo que a su vez le da a JAVA uno de los tiempos de implementación más cortos.
- JAVA combina lo mejor de todos los mundos al ser independiente de la plataforma como se mencionó anteriormente. Una aplicación web que se desarrolla en JAVA se puede mover fácilmente de un sistema operativo a otro sin pérdida de funcionalidad, y esa es una utilidad invaluable para poseer en cualquier entorno de desarrollo.
Como uno de los aspectos que hace que JAVA sea tan lucrativo como plataforma de desarrollo para la web, sus mínimas dependencias de implementación y su sintaxis matemáticamente sólida pueden explotarse generosamente para ejecutar casi cualquier instrucción matemática o lógica simplemente invocando una función integrada, con un mínimo de recursos adicionales. personalización
Uno de los ejemplos más brillantes de esta flexibilidad en el código es la capacidad de realizar permutaciones en JAVA , más específicamente, para aleatorizar y encontrar todas las permutaciones posibles de todos los caracteres disponibles en una cadena en particular.
En este tutorial guiado, aprenderemos cómo intentar realizar esta permutación en JAVA almacenando el primer carácter de la cadena en una ubicación "seguida" de la cadena e invocando la función generarPermutación() para aleatorizar diferentes variaciones con todos los demás caracteres en la cadena.

Leer: Preguntas y respuestas de la entrevista de Java
Tabla de contenido
Permutación en Java: el concepto del algoritmo de retroceso
Para encontrar una solución a este problema de permutación en JAVA , primero debemos familiarizarnos con un concepto que se ha vuelto ampliamente aceptado dentro de la comunidad de desarrollo web, como el algoritmo de El algoritmo de retroceso es un proceso recursivo que depende de corregir periódicamente un carácter de una cadena dada y combinarlo con todas las permutaciones posibles de todos los demás caracteres, y repetir este proceso con caracteres en cada posición de la cadena individualmente, para llegar al máximo (y todo el número posible) de variaciones para esa cadena.
Este algoritmo de permutación en JAVA es más fácil de entender en el contexto de una cadena dada con tres caracteres. Digamos que estos tres caracteres en una cadena determinada son A, B y C.
El primer paso para realizar esta permutación en JAVA es comenzar fijando un carácter (siempre comenzaremos fijando el carácter disponible en la primera posición), y luego realizar un intercambio con todos los caracteres restantes, combinándolos con el original ( fijo) carácter.
Por ejemplo, en el ejemplo de cadena ABC, realizaremos nuestras tres primeras iteraciones de cadena fijando el carácter A (que es el Luego llegamos a las siguientes combinaciones: ABC , BAC y CBA .
El siguiente paso es " arreglar " de manera similar el carácter que se encuentra en la siguiente posición de la cadena (en este caso, el carácter que se encuentra en la segunda posición de la cadena, a saber, B ) e intercambiar los caracteres restantes (incluido el carácter que se Eventualmente, seguiremos repitiendo este paso con cada nivel de aleatorización logrado, hasta llegar a un conjunto completo de todas las permutaciones posibles:

A B C
ACB
BAC
BCA
CBA
TAXI
En la sección de código de muestra/salida deseada disponible al final de este artículo, convertiremos este intento de realizar la permutación en JAVA en un código legible y, por lo tanto, veremos cómo se calculan las permutaciones en tiempo real.
Realizar una permutación en JAVA: el algoritmo recursivo para retroceder e intercambiar
Un breve resumen del proceso para tomar una cadena aleatoria y realizar una permutación completa en JAVA, se puede describir con el siguiente algoritmo recursivo paso a paso:
- Definición de cadena : primero, defina una cadena. Siempre puede elegir aceptar una cadena aleatoria como variable de entrada, pero para mayor claridad de propósito y esfuerzo, usaremos la cadena predefinida ABC en este ejemplo.
- Corrección de personajes : corrija un personaje (comience con el personaje en la primera posición y continúe intercambiándolo con todos los personajes restantes).
- generarPermutación() : invoque y use la salida de la función generarPermutación(), para todos los caracteres restantes.
- Retroceso recursivo : realice el algoritmo de "retroceso" y siga intercambiando caracteres recursivamente hasta que su código llegue al final de la cadena (en nuestro ejemplo actual, hasta C).
Realizar una permutación en JAVA — Código de muestra:
PermuteString de clase pública {
//definiendo una función para intercambiar los caracteres en la posición i con todos los caracteres en la posición j
public static String swapString(String a, int i, int j) {
// definiciones de caracteres para caracteres fijos en una cadena
char[] b =a.toCharArray();
char ch;
// realizando el intercambio en el siguiente paso
ch = b[i];
b[i] = b[j];
b[j] = ch;
devuelve Cadena.valueOf(b);
}public static void main(String[] args)
{
//definiendo la cadena predeterminada ABC
Cadena cadena = “ABC”;
//contando la longitud de la cadena
int len = str.longitud();
//imprimiendo todas las aleatorizaciones
System.out.println(“Las siguientes son todas las permutaciones posibles de la cadena ABC: “);
generarPermutación(str, 0, len);
}
//definiendo una función para generar todas las permutaciones posibles de la cadena
public static void generar Permutación (String str, int start, int end)
{
//imprimiendo todas las permutaciones
si (inicio == fin-1)
Sistema.salida.println(str);
demás
{
para (int i = inicio; i < fin; i++)
{
// arreglando un carácter para intercambiar la cadena
str = swapString(str,inicio,i);
//llamar a la función generatePermutation() de forma recursiva para todos los caracteres restantes generatePermutation(str,start+1,end);
// realizando un algoritmo de retroceso para intercambiar caracteres de nuevo
str = swapString(str,inicio,i);
}
}
}
}
Realización de una permutación en JAVA: salida derivada del código de muestra:
Cuando compile y ejecute este ejemplo, el resultado deseado debería verse así:
Las siguientes son todas las permutaciones posibles de la cadena ABC:
A B C
ACB
BAC
BCA

CBA
TAXI
Debe leer: Proyectos y temas interesantes de Java
Conclusión
Esperamos que este tutorial para realizar una permutación en JAVA te haya resultado útil.
Si está interesado en obtener más información sobre Java, OOP y desarrollo de software de pila completa, consulte el Diploma PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de formación rigurosa, 9 + proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.