Aller au contenu

Tri Rapide (Quicksort)

Partition et pivot — cas moyen O(n log n)

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

Enonce

Implémenter le tri rapide. Utiliser le dernier élément comme pivot. Retourner une nouvelle liste triée.

⚠ Question : Quel est le pire cas ? Comment l'éviter ?

Signature attendue

def tri_rapide(T: list) -> list:

Exemples

  • tri_rapide([10, 7, 8, 9, 1, 5]) → [1, 5, 7, 8, 9, 10]
  • tri_rapide([3, 3, 3]) → [3, 3, 3]
  • tri_rapide([]) → []

📖 Rappel de cours

Le tri rapide choisit un pivot, partitionne le tableau en éléments $\leq$ pivot et $>$ pivot, puis trie récursivement.

⚖️ Analogie — Le douanier :

Imaginez un douanier (le pivot) à la frontière. Il regarde chaque personne dans la file et dit : « Toi à gauche (plus petit), toi à droite (plus grand) ». Une fois tout le monde réparti, un nouveau douanier est placé dans chaque groupe pour recommencer. Au final, tout le monde est dans le bon ordre !

Complexité :

Cas moyen : $O(n\log n)$  |  Pire cas : $O(n^2)$ (pivot mal choisi)

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

Le pire cas survient quand le pivot est toujours le min ou le max (tableau déjà trié).

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

Exercices du meme theme

  • Tri par Insertion
  • Tri par Sélection
  • Tri Fusion (Merge Sort)
  • Exponentiation Rapide
  • Recherche dans une Liste Chaînée
  • Pile et File

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