Pour aller plus loin
Comme énoncé dans la partie précédente, les deux algorithmes de tri que nous venons de voir sont en place.
On veut donc les modifier afin qu'ils ne le soient plus.
Question
Écrire une version du tri par insertion qui ne modifie pas son entrée.
Sans pour autant faire appel à la copie de liste
Indice
La fonction insertion, plutôt que prendre un indice, prendra une valeur.
Et on pourra utiliser insert pour insérer au bon endroit plus efficacement.
Indice
La fonction tri_insertion ne changera pas beaucoup.
Il faudra juste penser à passer des valeurs plutôt que des indices et bien retourner la nouvelle liste.
Question
Écrire une version du tri par sélection qui ne modifie pas son entrée.
Sans pour autant faire appel à la copie de liste
Indice
La fonction echange n'est plus utile
Indice
La fonction indice_min va devenir beaucoup plus compliqué.
Il va falloir se souvenir de toutes les indices déjà utilisés.
Indice
La fonction tri_selection utilisera append sur une nouvelle liste pour ajouter les valeurs choisies par indice_min et mettra à jour la liste des indices déjà choisis.
Il faudra bien penser à retourner la nouvelle liste.