LGT Saint-Exupéry, Mantes-la-Jolie
Activité Terminale NSI – Le tri fusion 1/1
Objectifs pédagogiques :
✓ Connaître le principe de la méthode « diviser pour régner »
✓ Écrire un algorithme appliquant la méthode « diviser pour régner »
✓ Connaître l’algorithme du tri fusion
John Warner Backus est un informaticien américain. Il est directeur de l’équipe qui pour la première fois utilise un langage de programmation de haut niveau, et a mené de nombreuses recherches sur la programmation fonctionnelle – donc la récursivité, qu'il a contribué à populariser. Il a reçu le prix Turing en 1977.
Activité 1 – Principe des algorithmes « diviser pour régner »
1. Regarder la capsule vidéo sur le tri fusion sur le site nsi4noobs.fr
2. Résumer le principe des algorithmes utilisant le paradigme « diviser pour régner » 3. À quel type de programmation fait souvent appel cette méthode ?
Activité 2 – Le tri fusion
1. Réaliser le schéma en arborescence permettant le tri du tableau suivant [8,7,6,5,4,3,2,1] avec l’algorithme de tri fusion (« diviser pour régner »)
2. Quel est l’avantage de l’algorithme de tri fusion par rapport aux algorithmes de tri vus en classe de 1ère ? 3. Écrire en langage Python la fonction fusion(tab1, tab2) permettant de retourner un tableau de données triées
à partir des tableaux tab1 et tab2 préalablement triés
4. Écrire en langage Python la fonction récursive tri_fusion(tableau) permettant le tri fusion, en vous aidant de l’algorithme présenté dans la capsule vidéo.
5. Tester les fonctions précédentes à partir d’un tableau d’une centaine de valeurs aléatoires
Attention à bien tester votre algorithme sur un jeu de tests complet, en tenant compte de situations particulières : tableau déjà trié, tableau ne contenant qu’une valeur, tableau n’ayant que des valeurs identiques, etc.
Algorithmique
Le tri fusion