Aller au contenu

03 — Le Podium

Algorithme : Tri par sélection Difficulté : Facile Durée estimée : 45 min — 1h


Contexte

Vous gérez le classement d'une compétition de sprint. Vous devez trier les athlètes par temps croissant (le plus rapide en premier) et afficher le podium.

Le tri par sélection fonctionne comme un vrai classement : à chaque étape, on cherche le meilleur parmi tous les restants et on le place en tête.


Étapes

Étape 1 — Implémenter tri_selection_athletes(athletes)

La liste athletes contient des dictionnaires {"nom": ..., "pays": ..., "temps": ...}. Il faut trier par temps croissant (le plus petit temps = le plus rapide).

Indication : dans le tri par sélection, au lieu de comparer tab[j] < tab[mini], vous comparerez athletes[j]["temps"] < athletes[mini]["temps"].

Étape 2 — Afficher le podium

Implémentez afficher_podium(athletes_tries) qui affiche les 3 premiers avec un podium en ASCII.

        1er
       +---+         2e           3e
       |   |        +---+        +---+
       | 1 |        | 2 |        | 3 |
       |   |        |   |        |   |
       +---+        +---+        +---+
     Alice (FR)   Bob (USA)  Carla (BR)
      9.85 s       9.91 s     9.97 s

Étape 3 — Recherche dichotomique

Après le tri, créez une liste des temps uniquement. Implémentez temps_atteint(temps_liste, t) qui utilise la dichotomie pour dire si un temps exact a été réalisé lors de la compétition.

Étape 4 — Extension (si vous avez le temps)

Affichez aussi le classement complet sous forme de tableau numéroté.


Ce que vous devez rendre

  • Le programme qui trie et affiche le podium
  • Réponse : pourquoi le tri par sélection fait-il moins de déplacements que le tri par insertion ?

Dernière mise à jour : 07/07/2026