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.