Aller au contenu

Tri Fusion (Merge Sort)

Diviser pour régner — O(n log n)

Exercice Intermédiaire · Algorithmique · prepa scientifique et economique (CPGE)

Enonce

Implémenter le tri fusion récursif. La fonction tri_fusion retourne une nouvelle liste triée.

⚠ Bonus : Écrire une fonction fusionner(G, D) séparée.

Signature attendue

def tri_fusion(T: list) -> list:

Exemples

  • tri_fusion([38, 27, 43, 3, 9, 82, 10]) → [3, 9, 10, 27, 38, 43, 82]
  • tri_fusion([5, 1, 4, 2, 8]) → [1, 2, 4, 5, 8]
  • tri_fusion([1]) → [1]

📖 Rappel de cours

Le tri fusion est un algorithme diviser pour régner. On divise le tableau en deux moitiés, on trie récursivement, puis on fusionne les deux moitiés triées.

📚 Analogie — Trier des copies d'examen :

Vous avez une grosse pile de copies à trier par note. Vous la coupez en deux, vous donnez chaque moitié à un collègue, chacun trie sa moitié. Ensuite vous fusionnez les deux piles triées en comparant les copies du dessus une par une. C'est récursif : chaque collègue peut lui-même couper sa pile en deux !

Récurrence :

$T(n) = 2\,T\!\left(\frac{n}{2}\right) + O(n) \Longrightarrow T(n) = O(n\log n)$

La fusion de deux listes triées de taille $n/2$ se fait en $O(n)$.

Avantage : complexité garantie $O(n\log n)$. Inconvénient : $O(n)$ en mémoire.

← Exercices d'algorithmique en Python — tris, dichotomie, récursivité

Exercices du meme theme

  • Tri à Bulle (Bubble Sort)
  • Tri par Insertion
  • Tri par Sélection
  • Tri Rapide (Quicksort)
  • Exponentiation Rapide
  • Recherche dans une Liste Chaînée

La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Essai gratuit
Testez toutes les fonctionnalités sans engagement
En continuant, vous acceptez notre politique de confidentialité.
Déjà abonné ? Se reconnecter
Recevez un lien de connexion par email
Parcourir gratuitement →
Aperçu limité · sans inscription · sans vérification IA
€4,99
/ mois · accès illimité · résiliable
Paiement sécurisé
En vous abonnant, vous acceptez nos conditions et politique de confidentialité.
Résiliation possible depuis votre espace PayPal.

Chargement...

Initialisation de l'environnement

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Progression
0 / 0
Solo
— / —
Python... SQL...
Recherche
🔬 Bac a sable Python ↗ 🧪 Bac a sable SQL ↗ 📝 Concours blanc ↗ 🏖️ Code à la plage ↗ 📚 Listes de rentrée ↗ 🛠️ Admin ↗
Tu aimes PrepaPython ?
Fais-le savoir !
← Retour à l'accueil Mentions legales & confidentialite