Adloun

NSI (terminale) · Chapitre 6 · Application directe du cours

Tri rapide avec pivot aléatoire

Diviser pour régner · niveau 1 (application)

Énoncé

Tri rapide avec pivot aléatoire.

Modifier le tri rapide pour choisir un pivot aléatoire afin d'éviter le pire cas sur les tableaux déjà triés.

Corrigé


import random

def tri_rapide_alea(tab):
    if len(tab) <= 1:
        return tab
    pivot = random.choice(tab)
    petits  = [x for x in tab if x < pivot]
    egaux   = [x for x in tab if x == pivot]
    grands  = [x for x in tab if x > pivot]
    return tri_rapide_alea(petits) + egaux + tri_rapide_alea(grands)

Le partitionnement en trois (petits, égaux, grands) gère efficacement les doublons.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →