Una de las soluciones no recursivas tiene la siguiente lógica: la lógica para la solución no recursiva es la siguiente:
- Lo primero que debe hacer es ordenar la cadena dada en orden ascendente, que es la primera permutación, así que imprímala.
- Ahora tenemos que generar todas las otras permutaciones hasta que la cadena se ordene en orden descendente. Esa se convierte en la última permutación que se imprime y señala el final del programa.
- Para cada permutación, la permutación previa se convierte en el punto de partida y desde allí los pasos son:
- Encuentra el carácter más a la derecha en la cadena que es más pequeña que el siguiente carácter. Como exp. Si String es BCDA, entonces necesita escanear a través de los caracteres, B es más pequeño que el siguiente carácter ‘C’, pero recuerde que debe encontrar el carácter más a la derecha y ‘C’ también es más pequeño que el siguiente carácter ‘D’ que significa ‘C ‘es el char que estás buscando. Llamemos a este char como ‘CHAR1’.
- El segundo paso es encontrar el techo del ‘CHAR1’ a partir del índice del ‘CHAR1’, el techo aquí significa que a partir del índice del ‘CHAR1’ debe encontrar el carácter más pequeño que sea mayor que el ‘CHAR1’. Llamemos a este char como ‘CHAR2’. Como exp. Si la cadena es BCDAE y C es ‘CHAR1’, entonces está buscando el carácter más pequeño en la cadena “DAE” que es mayor que C. Por lo tanto, debería ser D, entonces D es ‘CHAR2’ en este caso.
- Intercambie estos 2 caracteres encontrados usando Step1 y Step2, es decir, CHAR1 y CHAR2.
- En la cadena resultante, tome la subcadena después del índice de ‘CHAR1’ hasta el final y ordénela.
Código para la lógica – http://netjs.blogspot.com/2016/0…
- ¿Cómo funcionan los algoritmos de alimentación de noticias?
- ¿Qué significa importar en Python? ¿Puedo hacer mi propio algoritmo sin usar importar?
- ¿Cuáles son algunos ejemplos de árboles M aplicados a problemas del mundo real?
- ¿Por qué es difícil estimar el tiempo de ejecución exacto de un algoritmo?
- ¿De qué sirve estudiar algoritmos de clasificación y técnicas de búsqueda? Quiero decir, ¿dónde lo usamos en la programación?