Académique Documents
Professionnel Documents
Culture Documents
que :
1. S (n) = Θ(1), si c < 1.
2. S (n) = Θ(n), si c = 1.
Exercice 3
Considérons l’algorithme suivant :
Fonction f(n : Entier) : Entier;
Var x, y : Entier;
Début
x := n; y := n;
________________________________________________________________________________
Algorithmique avancé, TC ENSAK / S1 – 2019-2020 1
Tant Que (y ≠ 0) Faire
x := x + 2; y := y - 1;
FinTQ
Retourner(x);
Fin
1. Que calcule cette fonction ? Le prouver.
2. Donner la complexité théorique de cet algorithme. Comment améliorer cette
complexité ?
Exercice 4
Considérons l’algorithme suivant :
Fonction f(n : Entier) : Entier;
Var x, y : Entier;
Début
Si (n = 0) Alors Retourner(2);
Sinon Retourner(f(n - 1) * f(n - 1));
FinSi
Fin
1. Que calcule cette fonction ? Le prouver.
2. Donner la complexité de cet algorithme. Comment améliorer cette complexité ?
3. Proposer un algorithme itératif qui calcul le même résultat que f(n). Donner sa
preuve et calculer sa complexité.
Exercice 5
Supposons que, pour résoudre un même problème P, vous devriez choisir un
algorithme parmi les trois proposés :
• L’algorithme A résout une instance du problème P de taille n en le divisant en
cinq sous-problèmes (chacun de taille n/2), puis résout récursivement chaque
sous-problème, et finalement combine les solutions en temps linéaire en n
• L’algorithme B résout une instance du problème P de taille n en résolvant
récursivement deux sous-problèmes de taille (n - 1) chacun, puis en combinant
les deux solutions in temps constant.
• L’algorithme C résout une instance du problème P de taille n en le divisant en
neuf sous-problèmes (chacun de taille n/3), puis résout récursivement chaque
sous-problème, et finalement en combinant les the solutions en temps O(n2).
Déterminer le temps d’exécution de chacun des trois algorithmes précédents. Lequel
choisiriez-vous ?
________________________________________________________________________________
Algorithmique avancé, TC ENSAK / S1 – 2019-2020 2