Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
Exercice 2
Voici un algorithme permettant de déterminer le PGCD de deux nombres a ⩾ 0 et b > 0 à l’aide de l’algorithme
d’Euclide.
Rappels :
♡ Théorème 1
Pour tous nombres entier naturel a et b ̸= 0, il existe un unique couple d’entiers (q ; r ) tels que
a = bq + r et 0 ⩽ r < b
♡ Théorème 2
Pour tous nombres entier naturel a et b ̸= 0, on a :
PGCD(a ; b) = PGCD(b ; r )
Algorithme PGCD
Fonction PGCD(a, b)
r ← reste de a par b (div. eucl.)
Tant que r ̸= 0 Faire
a←b
b←r
r ← reste de a par b (div. eucl.)
Fin Tant que
return b
Fin Fonction
1. Justifier la terminaison à l’aide d’un variant de boucle.
2. Justifier la correction à l’aide d’un invariant de boucle.
Exercice 3
Déterminer la complexité des algorithmes suivants en fonction de m et de n qui sont des entiers positifs.
On choisira de compter le nombre d’itérations.
Algorithme 1
i ← 1; j ← 1
Tant que i ⩽ m et j ⩽ n Faire
i←i + 1
j←j + 1
Fin Tant que
Algorithme 2
i ← 1; j ← 1
Tant que i ⩽ m ou j ⩽ n Faire
i←i + 1
j←j + 1
Fin Tant que
Algorithme 3
i ← 1; j ← 1
Tant que j ⩽ n Faire
Si i ⩽ m Alors
i←i + 1
Sinon
j←j + 1
Fin Si
Fin Tant que
Algorithme 4
i ← 1; j ← 1
Tant que j ⩽ n Faire
Si i ⩽ m Alors
i←i + 1
Sinon
j←j + 1
i←1
Fin Si
Fin Tant que
Exercice 4
Écrire une fonction qui prend en entrée un tableau et un élément à rechercher dans le tableau et qui retourne
la position de la dernière occurrence de l’élément si celui-ci est présent dans le tableau et la taille du tableau
sinon.
Exercice 5
Écrire une fonction qui prend en entrée un tableau et qui retourne la liste des positions du minimum dans ce
tableau.
Exercice 6
Dans l’algorithme de la recherche dichotomique, que se passerait-il si
1. on remplace b ← m − 1 par b ← m ?
2. on remplace a ⩽ b par a < b ?
Exercice 7
Exercice 8
On se rend compte dans le tri à bulles, il y a des « tortues », c’est-à-dire des petits éléments situés près de la fin
de la liste, qui ne remontent que très lentement, un emplacement par itération, vers leur emplacement définitif
(essayer avec la liste [2, 3, 4, 5, 1]).
Plutôt que de parcourir la liste uniquement de gauche à droite, on pourrait la parcourir dans les deux sens.
C’est-à-dire faire remonter le plus grand à droite en parcourant la liste de gauche à droite, puis redescendre le
plus petit à gauche en parcourant la liste de droite à gauche, puis remonter le deuxième plus grand à droite etc.
Exercice 9
Voici un algorithme de tri :
1. rechercher le plus petit élément de la liste et l’échanger avec le premier élément ;
2. rechercher le second plus petit élément de la liste et l’échanger avec le deuxième élément ;
3. continuer de cette façon jusqu’à ce que la liste soit entièrement triée.
Ecrire un algorithme réalisant cet algorithme.
Exercice 10