POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Código 101: Ordenar una pila con recursión

Código 101: Ordenar una pila con recursión

Publicado el 27/08/2025

Pregunta: Dada una pila, ordénala usando recursión. No está permitido usar constructos de bucle como while o for.

Solución resumida: La idea principal es usar dos funciones recursivas. Una función sort extrae el elemento superior hasta que la pila quede vacía, llamándose recursivamente. Cuando la pila está vacía se inicia la reconstrucción utilizando una función insert que coloca cada elemento en la posición correcta para mantener el orden deseado. De este modo se ordena la pila sin usar bucles. La complejidad temporal es O(n sup 2 sup) en el peor caso y la complejidad espacial es O(n) por la pila de llamadas recursivas.

Algoritmo paso a paso: 1 Extraer el elemento superior y llamar recursivamente a sort hasta que la pila quede vacía 2 Al volver de la recursión, insertar cada elemento con insert que compara el valor con el tope y, si es necesario, desempila elementos hasta encontrar la posición correcta 3 Volver a apilar los elementos temporalmente removidos

Ejemplo de implementación en Java sin uso de bucles ni literales de cadena: package stack.queue; import java.util.Stack; public class SortStackWithRecursion { static Stack<Integer> stack; public static void sort() { if (!stack.isEmpty()) { int temp = stack.pop(); sort(); insert(temp); } } private static void insert(int value) { if (stack.isEmpty() || ((Integer)stack.peek()) < value) { stack.push(value); } else { int temp = stack.pop(); insert(value); stack.push(temp); } } public static void main(String[] args) { stack = new Stack<>(); stack.add(12112); stack.add(21); stack.add(300); stack.add(41); stack.add(52); sort(); } }

Explicación de la ordenación: Al llamar sort se deshace la pila elemento a elemento hasta que queda vacía. Durante el deshacer la pila actúa como almacenamiento temporal. Luego insert coloca cada elemento en orden descendente o ascendente según la condición usada en el if. No se necesita ninguna estructura adicional aparte de la pila original y la pila de llamadas recursivas.

Consejos y variantes: Para ordenar en sentido ascendente simplemente cambie la condición en insert. Si el orden requerido es estable frente a duplicados, la implementación presentada conserva duplicados y los posiciona según la comparación elegida. Tenga en cuenta el límite de profundidad de recursión del entorno si el tamaño de la pila es muy grande; en esos casos puede considerarse una versión iterativa o ajustar el stack size.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Ofrecemos soluciones completas en inteligencia artificial e ia para empresas, creación de agentes IA, servicios de ciberseguridad y consultoría en servicios cloud aws y azure. También proporcionamos servicios inteligencia de negocio y soluciones con power bi para visualización y análisis. Nuestro equipo desarrolla aplicaciones a medida integrando inteligencia artificial para automatizar procesos, mejorar la toma de decisiones y asegurar la infraestructura con prácticas avanzadas de ciberseguridad. Si busca software a medida, agentes IA personalizados, servicios cloud aws y azure o soluciones de inteligencia de negocio y power bi, Q2BSTUDIO puede acompañarle en todo el ciclo de desarrollo.

Palabras clave orientadas a posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, power bi.

Contacto y cierre: En Q2BSTUDIO combinamos experiencia en desarrollo, inteligencia artificial y ciberseguridad para entregar soluciones sólidas y seguras. Ponte en contacto con nosotros para transformar tu idea en una aplicación a medida escalable y segura.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio