ALGORITHMES OPÉRANT SUR UNE STRUCTURE SÉQUENTIELLE PAR BOUCLES IMBRIQUÉES(2) TP
Algorithmes opérant sur une structure sé- quentielle par boucles imbriquées (2) – TP
9Tri à bulles
L’objectif de cette activité est d’écrire une fonction qui permet de trier une liste de nombres dans l’ordre croissant.
Pour créer une liste de nombres choisis aléatoirement, on peut utiliser la bibliothèquerandom. La fonctionrandint(a,b)permet d’obtenir un entiernchoisi aléatoirement tel queaÉnÉb.
1. Importer le modulerandom, avec l’aliasrd, et tester la fonctionrandinten générant un entier compris entre 0 et 100.
2. Créer une listelistecomposée de 15 entiers choisis aléatoirement entre 0 et 100.
3. Exécuter le programme suivant et commenter.
Python
1 n = len(liste)
2 for i in range(n-1):
3 if liste[i] > liste[i+1]:
4 liste[i], liste[i+1] = liste[i+1], liste[i]
5 print(liste)
4. Exécuter de nouveau le script précédent sur la liste obtenue à la question précédente. Commenter.
5. Écrire une fonctiontriBulles(L)qui prend en entrer une liste d’entiersLet qui renvoie la liste triée.
6. Compter le nombre de fois où le script de la question 3 a été exécuté partriBulles(L). Compter le nombre total de comparaisons effectuées partriBulles(L)
7. Expliquer le nom donné à cette méthode de tri.
Recherche des deux valeurs les plus proches dans un tableau
L’objectif de cette activité est de trouver les deux termes d’une liste dont la différence, en valeur absolue, est la plus petite.
1. Sur une feuille, proposer un algorithme pour répondre à cette question. On pourra expliquer l’algorithme à l’aide de schémas.
2. Écrire une fonction mettant en œuvre l’algorithme proposé à la question précédente.
G. BOUTARD 1 Lycée GAY-LUSSAC