Essayez d'écrire une fonction python récursive prenant en entrée une liste de nombres et retournant en sortie une liste triée contenant les mêmes nombres que la liste d'entrée. Cette fonction de tri devra s'appuyer sur une utilisation de la fonction suivante :
def mini(L) :
a = min(L)
L.remove(a)
return a
- ISN
- doc python
- principe
- un code
Le tri par sélection est au programme de la spécialité ISN.
Extrait de la doc python :
list.remove(x)
Remove the first item from the list whose value is x. It is an error if there is no such item.
La fonction mini
proposée renvoie la valeur minimale contenue dans la liste L et efface de la liste L
la première occurrence de cette valeur minimale.
Principe du "tri sélection".
L est la liste à trier, T initialement vide sera la liste retournée.
- Si la liste L est vide, retourner T.
- Sinon :
- Retirer de la liste L un élément de valeur minimale.
- Ajouter cet élément en fin de liste T.
- Reprendre au point 1.
def mini(L) :
a = min(L)
L.remove(a)
return a
def tri(L, T = []) :
if L == [] : return T
else : return tri(L, T + [mini(L)])
liste = [3,5,6,2,2,4,3,5]
print(tri(liste))