ioCode
Tri fusion
Tris • Exercices 1A
- Écrire une fonction1IndiceCalculer la longueur de la liste puis parcourir ses indices pour répartir les éléments dans deux nouvelles listes.
decouper_en_2(t)qui renvoie un tuple contenant deux listes correspondant respectivement à la première et à la seconde moitié de la listet. Par exempledecouper_en_2([1, 2, 3, 4])renvoie([1, 2], [3, 4]). - Écrire une fonction2IndiceDéterminer l'indice médian de la séquence puis appliquer la syntaxe de tranchage (tab[start:stop]) pour extraire les deux moitiés.
slice_2(t)qui renvoie un tuple contenant les deux moitiés de la listeten utilisant les tranches. Par exempleslice_2([1, 2, 3, 4])renvoie([1, 2], [3, 4]). - Écrire une fonction récursive3IndiceComparer les premiers éléments des deux listes triées puis appeler la fonction de fusion sur les listes restantes. Penser aux conditions d'arrêt de l'algorithme.
fusion(t1, t2)qui renvoie une liste triée contenant tous les éléments des listes triéest1ett2. Par exemplefusion([1, 3], [2, 4])renvoie[1, 2, 3, 4]. - Écrire une fonction impérative4IndiceUtiliser deux indices de parcours i1 et i2 pour chaque liste t1 et t2. Aancer systématiquement celui qui pointe sur la valeur la plus petite.
fusionner(t1, t2)qui calcule une liste triée contenant tous les éléments des listes triéest1ett2sans utiliser de récursivité. Par exemplefusionner([1, 3], [2, 4])renvoie[1, 2, 3, 4]. - Écrire une fonction récursive5IndiceDiviser récursivement la liste en sous-listes jusqu'à obtenir des éléments isolés puis les recombiner en ordre croissant. Une liste à 0 ou 1 élément est déjà triée !
tri_fusion(t)qui renvoie une liste triée contenant les mêmes éléments que la listeten utilisant l'algorithme du tri fusion. Par exempletri_fusion([3, 1, 4, 2])renvoie[1, 2, 3, 4].
Langage
Console initialisée. En attente de l'interpréteur...