push_swap es un proyecto de algoritmia que se centra en ordenar un conjunto de datos utilizando stacks y un conjunto limitado de instrucciones. El reto es conseguir la ordenación más eficiente posible con el menor número de movimientos.
- Tienes dos stacks (
a
yb
) y un conjunto de instrucciones para mover elementos entre ellos. - El objetivo es ordenar los números del stack
a
en orden ascendente, utilizando el menor número de operaciones. - Algunas de las operaciones disponibles incluyen intercambiar elementos, rotar el stack y mover elementos entre los stacks.
sa
/sb
– Intercambia los dos primeros elementos del stack.pa
/pb
– Mueve el primer elemento de un stack al otro.ra
/rb
– Desplaza todos los elementos hacia arriba en el stack.rra
/rrb
– Desplaza todos los elementos hacia abajo en el stack.
Este proyecto ha sido una gran experiencia, ya que me ha permitido aprender:
- Manipulación de nodos: He trabajado intensamente con estructuras de datos dinámicas como nodos y listas enlazadas para gestionar los stacks.
- Algoritmos de ordenación: He explorado diferentes algoritmos de ordenación, buscando la solución más eficiente según la configuración de los datos.
- Optimización y complejidad: Entender y optimizar la complejidad de los algoritmos de ordenación ha sido un desafío clave en este proyecto.
- Parsing avanzado: Aprender a parsear y validar los datos de entrada eficientemente ha sido otro aspecto fundamental del desarrollo.
Este proyecto es un gran paso en mi camino para entender la importancia de la complejidad algorítmica y la optimización en la programación.