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
>>> exemple_1 = [1, 2, 4, 5]
>>> insere(3, exemple_1)
>>> exemple_1
[1, 2, 3, 4, 5]
>>> exemple_2 = [1, 2, 7, 12, 14, 25]
>>> insere(7, exemple_2)
>>> exemple_2
[1, 2, 7, 7, 12, 14, 25]
>>> exemple_3 = [2, 3, 4]
>>> insere(1, exemple_3)
>>> exemple_3
[1, 2, 3, 4]
Compléter la fonction insere
ci-dessous.
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-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-nl
A
Z