Adloun

Le banc d'essai des six tris

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 9 — Les tris

Énoncé

Écrire une fonction de validation de tri qui vérifie à la fois le caractère croissant du résultat et la conservation exacte des éléments (permutation).

Corrigé

def valide(tri_renvoie, essais=500):
    import random
    random.seed(9)
    for _ in range(essais):
        # Génération d'un tableau de taille et de valeurs aléatoires
        t = [random.randint(0, 50) for _ in range(random.randint(0, 40))]
        copie = list(t)
        r = tri_renvoie(t)
        # Propriété 1 : Croissance
        assert all(r[i] <= r[i+1] for i in range(len(r) - 1))
        # Propriété 2 : Permutation (sans modification de la source)
        assert sorted(copie) == r and t == copie

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.