IMT Lille Douai – FI 1A TD d’Algorithmique et Programmation
Figure 1 – Fenêtre NetBeans
Listing 2 – Code java pour le calcul du factoriel
1pu bli c s t a t i c in t factoriel (int N) {
2return N∗factoriel(N−1);
3}
Que se passe-t-il lors de l’exécution ? Résoudre le problème apparut et testez l’exécution pour N=10. Utilisez la
méthode System.out.println() pour indiquer le résultat de votre exécution dans le main().
Testez ensuite l’exécution pour N=20. Que se passe-t-il et comment résoudre ce problème (qui réapparaitra pour des
valeurs plus grandes) ?
Ajoutez ensuite les différentes implémentations de la méthode puissance vues au TD 3. Testez ces implémentations en
les appelant de votre main().
Exercice 3 : Le tri
Reprenez les algorithmes vus en cours que sont le tri sélection et le tri à bulles et implémentez-les.
1. Testez-les d’abord que vos tris fonctionnent sur un tableau de taille fixe que vous remplirez à la main. Vous pouvez
déclarer et remplir un tableau en une instruction avec la notation suivante : int [] test = {1, 3, 0, 9, 6, 4, 2};
2. Générez ensuite un grand tableau (100 000 éléments). Pour ceci, avant le début de votre classe, ajoutez la ligne
import java.util.Random;, puis dans votre méthode, déclarez ensuite dans votre méthode un nouveau générateur
aléatoire : Random R = new Random();, et vous générerez un élément avec grandTableau[i] = R.nextInt();. Testez
donc le temps d’exécution sur un grand tableau et comparez les deux algorithmes.
3. Générez ensuite un grand tableau (100 000 éléments) trié (contenant les nombres de 1 à N pour un tableau de
taille N). Ce tableau est déjà trié. Comparez le temps d’exécution sur ce tableau. Échangez ensuite les deux cases
extrêmes (première et dernière) et comparez de nouveau aux exécutions précédentes. Pouvez-vous expliquer ces
différences ?
4. Une première optimisation de ce tri est appelée « tri Cocktail » (aussi appelé « tri Happy Hours »). Dans ce
tri, nous gardons le principe du tri à bulles, mais en faisant un parcours dans un sens puis au tour d’après un
parcours dans l’autre sens (du début à la fin puis de la fin au début). Modifiez votre algorithme de tri à bulles
pour faire ce nouveau tri, puis testez sur les mêmes exemples que ceux donnés précédemment. Quelle est le
résultat de ces tests ?
Exercice 4 : Palindromes
Reprenez votre correction de l’exercice du palindrome du TD3. Testez votre code pour afficher le résultat pour quelques
valeurs choisies. Testez ensuite cette correction sur le nombre 101101. Vous verrez alors que probablement votre
algorithme ne fonctionnera pas. Modifiez votre code pour que cela puisse fonctionner, en insérant en plus un élément
permettant de compter le nombre de chiffres sur lequel vous êtes censé travailler, afin de pouvoir faire fonctionner
votre code tant sur l’exemple donné précédemment que sur 1001101 par exemple.
A.D., A.F., M.L., G.D., A.G. Page : 2/2