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
nisorted
dans cet exercice.
Exemples
>>> 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
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
.
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