Retour aux projets

Projet 42

Push Swap

Un projet d’algorithmie autour du tri de données avec un nombre limité d’opérations.

Stack

  • C
  • Algorithmie
  • Sorting

Skills acquis

  • Manipuler des structures de données de type pile
  • Concevoir une stratégie de tri adaptée à des contraintes fortes
  • Optimiser le nombre d’opérations produites
  • Rendre un algorithme plus lisible, testable et robuste

Liens

Push Swap est un projet d’algorithmie dont l’objectif est de trier une pile d’entiers en utilisant un ensemble limité d’opérations. Le défi ne consiste pas seulement à produire un résultat correct, mais à trouver une stratégie efficace, lisible et optimisée en nombre de mouvements.

01 — Contraintes

Trier avec les mains attachées.

Le projet impose de trier des nombres avec seulement quelques opérations autorisées sur deux piles. Cette contrainte force à réfléchir différemment : chaque mouvement compte, et une solution naïve devient vite trop coûteuse.

Illustration d’un algorithme de tri manipulant deux piles
Fig. 01
Quand tu réalises que trier des nombres peut soudain devenir un problème existentiel.

02 — Stratégie

Choisir le bon chemin.

L’enjeu principal est de construire une méthode qui reste efficace sur différentes tailles d’entrées. Cela demande de comparer plusieurs approches, de mesurer les résultats et d’itérer jusqu’à obtenir un compromis acceptable entre simplicité et performance.

Illustration d’une stratégie d’optimisation pour un tri algorithmique
Fig. 02
Une opération de moins, et soudain la journée est meilleure.

03 — Optimisation

Compter chaque mouvement.

Push Swap apprend à regarder un algorithme non seulement comme une idée, mais comme une suite d’actions concrètes à optimiser. Le projet m’a permis de mieux comprendre les compromis entre complexité, lisibilité et performance réelle.

Illustration d’un debugging d’algorithme de tri
Fig. 03
Le genre de projet où tu finis par rêver de piles A et B.