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-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-nl

A

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

Version fonctionnelle⚓︎

On peut coder cette phrase logique :

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

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

Notons que dans les cas où tableau à strictement moins de 2 éléments range(1, len(tableau) ne fait aucun tour et all(...) renvoie True.

Z