push_swap est un projet de tri algorithmique où l'objectif est de trier des données dans une pile en utilisant un ensemble limité d'instructions, tout en visant le plus petit nombre d'actions possible. Ce projet nécessite de travailler avec différents algorithmes et de choisir le plus approprié pour un tri de données optimisé Objectifs principaux :
- Créer un programme capable de trier les nombres dans la pile a en ordre croissant grace à la pile b , le tout avec le minimum d'opérations possible (imposé par le sujet)
- Maîtriser les concepts de structures de données (piles) / LIFO (Last In, First Out)
- Comprendre et implémenter des algorithmes de tri efficaces
git clone https://github.com/mello-sdn/Push_swap.git
cd push_swapmake# Exemple basique
./push_swap 2 1 3 6 5 8
# Sortie : liste d'instructions pour trier les nombres
sa
pb
pb
pb
sa
pa
pa
pa
# Gestion d'erreurs basique
./push_swap 0 one 2 3
Error# Avec le checker fourni
ARG="4 67 3 87 23"; ./push_swap $ARG | ./checker_OS $ARG
Resultat attendu : OK- Complexité : Comprendre et optimiser la complexité temporelle de votre algorithme (voir notation big O)
- Choix d'algorithme : Différentes approches selon le nombre d'éléments (tri à bulles, tri rapide, radix sort, etc.) j'ai personnellement choisi le Turkish Algo
- Optimisation : Minimiser le nombre d'opérations nécessaires
- Arguments non entiers
- Arguments dépassant les limites d'un int
- Présence de doublons
- Chaînes vides
- Commencez par implémenter toutes les opérations
- Testez chaque opération individuellement
- Développez d'abord un algorithme simple qui fonctionne
- Optimisez progressivement
- Bien prendre en compte les cas d'erreurs (int min max, doublons, charactères invalides etc.. ainsi que les leaks)
