Aller au contenu

Insertion dans une liste triée⚓︎

On considère la fonction insere ci-dessous qui prend en argument un entier a et une liste nombres d'entiers triés par ordre croissant. Cette fonction insère la valeur a dans la liste de sorte que la liste reste triée.

Exemples
🐍 Console Python
>>> exemple_1 = [1, 2, 4, 5]
>>> insere(3, exemple_1)
>>> exemple_1
[1, 2, 3, 4, 5]
🐍 Console Python
>>> exemple_2 = [1, 2, 7, 12, 14, 25]
>>> insere(7, exemple_2)
>>> exemple_2
[1, 2, 7, 7, 12, 14, 25]
🐍 Console Python
>>> exemple_3 = [2, 3, 4]
>>> insere(1, exemple_3)
>>> exemple_3
[1, 2, 3, 4]

Compléter la fonction insere ci-dessous.

###
# testsbksl-nlexemplepy-und1 = [1, 2, 4, 5]bksl-nlinsere(3, exemplepy-und1)bksl-nlassert exemplepy-und1 == [1, 2, 3, 4, 5]bksl-nlbksl-nlexemplepy-und2 = [1, 2, 7, 12, 14, 25]bksl-nlinsere(7, exemplepy-und2)bksl-nlassert exemplepy-und2 == [1, 2, 7, 7, 12, 14, 25]bksl-nlbksl-nlexemplepy-und3 = [2, 3, 4]bksl-nlinsere(1, exemplepy-und3)bksl-nlassert exemplepy-und3 == [1, 2, 3, 4]bksl-nlbksl-nlbksl-nl# autres testsbksl-nlbksl-nlnombres = []bksl-nlbksl-nlinsere(-101, nombres)bksl-nlassert nombres == [-101], "Erreur insertion dans liste vide"bksl-nlbksl-nlinsere(11, nombres)bksl-nlassert nombres == [-101, 11], "Erreur insertion singleton"bksl-nlbksl-nlinsere(0, nombres)bksl-nlassert nombres == [-101, 0, 11], "Erreur insertion élément nul"bksl-nlbksl-nlinsere(-200, nombres)bksl-nlassert nombres == [-200, -101, 0, 11], "Erreur insertion à gauche"bksl-nlbksl-nlinsere(200, nombres)bksl-nlassert nombres == [-200, -101, 0, 11, 200], "Erreur insertion à droite"bksl-nlbksl-nl 5/5

def insere(a, nombres):bksl-nl nombres.append(a)bksl-nl i = ...bksl-nl while (a < ...) and (i >= 0):bksl-nl nombres[i + 1] = ...bksl-nl nombres[i] = abksl-nl i = ...bksl-nlbksl-nlbksl-nl# testsbksl-nlexemplepy-und1 = [1, 2, 4, 5]bksl-nlinsere(3, exemplepy-und1)bksl-nlassert exemplepy-und1 == [1, 2, 3, 4, 5]bksl-nlbksl-nlexemplepy-und2 = [1, 2, 7, 12, 14, 25]bksl-nlinsere(7, exemplepy-und2)bksl-nlassert exemplepy-und2 == [1, 2, 7, 7, 12, 14, 25]bksl-nlbksl-nlexemplepy-und3 = [2, 3, 4]bksl-nlinsere(1, exemplepy-und3)bksl-nlassert exemplepy-und3 == [1, 2, 3, 4]bksl-nlbksl-nldef insere(a, nombres):bksl-nl nombres.append(a)bksl-nl i = len(nombres) - 2bksl-nl while (a < nombres[i]) and (i >= 0):bksl-nl nombres[i + 1] = nombres[i]bksl-nl nombres[i] = abksl-nl i -= 1bksl-nlbksl-nl

A

Z