Minitalk
Proyecto programado en C que implementa la comunicación entre un servidor y un cliente usando las señales SIGUSR1 y SIGUSR2. El servidor recibe mensajes del cliente. Soporta caracteres UNICODE.
Ejecución de Minitalk
Enlace al proyecto
Push Swap
Descripción
El proyecto Push Swap es un desafío algorítmico diseñado para ordenar una pila de números enteros utilizando un conjunto limitado de operaciones. El objetivo es ordenar la pila con el menor número de movimientos posible.
Características
- Algoritmos de Ordenación: Implementa algoritmos eficientes para ordenar pilas de diferentes tamaños.
- Operaciones de Pila: Utiliza una variedad de operaciones para manipular y ordenar la pila.
- Manejo de Errores: Incluye un manejo robusto de errores para entradas inválidas y valores duplicados.
Operaciones
Las siguientes operaciones se utilizan para ordenar la pila:
sa
,sb
,ss
: Intercambian los dos primeros elementos de la pila.pa
,pb
: Mueven el elemento superior de una pila a otra.ra
,rb
,rr
: Rotan la pila hacia arriba.rra
,rrb
,rrr
: Rotan la pila hacia abajo.
Algoritmos
- Ordenación de Tres Elementos: Un algoritmo específico para ordenar pilas con tres elementos.
- Ordenación General: Para pilas con más de tres elementos, se utiliza una combinación de operaciones de pila para mover elementos entre dos pilas (
stack_a
ystack_b
) y ordenarlos. Esto incluye:- Encontrar el nodo con el valor máximo y asignarle un índice.
- Calcular los costos de movimiento para optimizar las operaciones.
- Mover elementos entre pilas hasta que estén ordenados.
Uso
- Compila el proyecto utilizando
make
. - Ejecuta el programa con una lista de números enteros como argumentos:
./push_swap 3 2 5 1 4
Comentarios