Aller au contenu

Programmer la fonction est_trie qui prend en paramètre un tableau de valeurs numériques et qui détermine si ce tableau est trié dans l'ordre croissant. La fonction renvoie un booléen True ou False.

On n'utilisera ni sort ni sorted dans cet exercice.

Exemples
🐍 Console Python
>>> est_trie([0, 5, 8, 8, 9])
True
>>> est_trie([8, 12, 4])
False
>>> est_trie([-1, 4])
True
>>> est_trie([5])
True
>>> est_trie([])
True
###
# testsbksl-nlbksl-nlassert estpy-undtrie([0, 5, 8, 8, 9])bksl-nlassert not estpy-undtrie([8, 12, 4])bksl-nlassert estpy-undtrie([-1, 4])bksl-nlassert estpy-undtrie([5])bksl-nlassert estpy-undtrie([])bksl-nlbksl-nlbksl-nl# Autres testsbksl-nlbksl-nlassert not estpy-undtrie([5, 4, 3, 2, 1, 0])bksl-nlassert not estpy-undtrie([1, 2, 3, 4, 0])bksl-nlassert not estpy-undtrie([2, 1, 2, 3, 4])bksl-nlassert not estpy-undtrie([5, 1, 2, 3, 4])bksl-nlassert estpy-undtrie([10, 10, 10, 10])bksl-nlassert estpy-undtrie([-9, -9, -8, -6, -3, -2, 0, 4, 6, 7, 7, 7])bksl-nlbksl-nl 5/5

def estpy-undtrie(tableau):bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert estpy-undtrie([0, 5, 8, 8, 9])bksl-nlassert not estpy-undtrie([8, 12, 4])bksl-nlassert estpy-undtrie([-1, 4])bksl-nlassert estpy-undtrie([5])bksl-nlassert estpy-undtrie([])bksl-nlbksl-nldef estpy-undtrie(tableau):bksl-nl for i in range(1, len(tableau)):bksl-nl if tableau[i - 1] > tableau[i]:bksl-nl return Falsebksl-nl return Truebksl-nlbksl-nl

A

Notons que dans les cas où tableau a strictement moins de 2 éléments range(1, len(tableau)) ne fait aucun tour de boucle.

Version fonctionnelle hors programme de NSI⚓︎

On peut coder cette phrase logique :

Le tableau est trié s'il a moins de deux éléments ou alors si chacun des éléments à partir du deuxième est supérieur ou égal à son prédécesseur.

L'appel all(booleens) est évalué à True si tous les éléments de booleens sont égaux à True, sinon à False.

Si l'objet itérable est vide, l'appel all(booleens) renvoie également True.

🐍 Script Python
def est_trie(tableau):
    return all(tableau[i] >= tableau[i - 1] for i in range(1, len(tableau)))

Rappelons que dans les cas où tableau a strictement moins de deux éléments range(1, len(tableau)) ne fait aucun tour de boucle et donc all(...) renvoie True.

Z