Universit´e de Sherbrooke
IFT 436 - Algorithmes et structures de donn´ees
Devoir #1
Analyse d’algorithmes
Ces exercices sont `a remettre mardi 04 juin, apr`es le cours.
Il est `a noter que 5% de la note pourra ˆetre d´eduit pour la pr´esentation du devoir.
Ces exercices doivent ˆetre faits en ´equipe d’au moins deux personnes. Veuillez com-
muniquer avec moi si vous n’avez pas de co´equipier.
Ce devoir compte pour 7.5% de la note finale.
Question 1 ( 18 pts)
1. Montrer que :
n2=O(105n3)
25n419n3+ 13 n2=O(n4)
2n+100 =O(2n)
2. Donner les relations d’inclusions entre les ensembles suivants :
O(nlog n), O(2n), O(log n), O(1), O(n2), O(n3) et O(n).
Soient f, g, S et Tdes fonctions dans NN
3. Montrer que si f(n) = O(g(n)), alors g(n) = Ω(f(n))
4. Montrer que si f(n) = O(g(n)), alors f(n) + g(n) = O(g(n))
On suppose que S(n) = O(f(n)) et T(n) = O(g(n))
5. Montrer que S(n)T(n) = O(f(n)g(n))
1
Question 2 ( 12 pts) En utilisant la notation asymptotique Θ, d´eterminer la complexit´e des algo-
rithmes suivants en fonction de met n, avec met ndeux entiers positifs. Donner juste le terme
dominant. Les preuves ou justifications ne sont pas requises.
Algorithme : A
1i1;
2j1;
3while im and j ndo
4ii+ 1;
5jj+ 1;
Algorithme : B
1i1;
2j1;
3while im or j ndo
4ii+ 1;
5jj+ 1;
Algorithme : C
1i1;
2j1;
3while jndo
4if imthen
5ii+ 1;
6else
7jj+ 1;
Algorithme : D
1i1;
2j1;
3while jndo
4if imthen
5ii+ 1;
6else
7jj+ 1;
8i1;
2
Question 3 ( 10 pts)
Soit l’algorithme Sum suivant :
Algorithme : Sum (n)
1x0;
2for i1 ; i n
2; i++ do
3for j1 ; j n ; j j×2do
4x++;
En suposant que nest une puissance exacte de 2 (n= 2k,k0)
1. Utiliser le tableau suivant pour exprimer le coˆut et la complexit´e (en utilisant la notation
asymptotique Θ) de chaque ligne de l’algorithme Sum
ligne Coˆut Nombre de fois Coˆut total de la ligne Complexit´e en utilisant la notation Θ
1c1
2c2
3c3
4c4
2. Donner la complexit´e (en utilisant la notation asymptotique Θ) de l’algorithme Sum
Question 4 ( 10 pts)
Soit les deux algorithmes suivant :
1. Algorithme : Algo1
1sum := 0;
2for i := 0 ; i <n ; i++ do
3for j := 0 ; j < i3; j++ do
4sum++;
2. Algorithme : Algo2
1sum := 0;
2for i := 1 ; i <n ; i++ do
3for j := 1 ; j <i*i ; j++ do
4if j%i==0then
5for k := 0 ; k <j ; k++ do
6sum++;
1. Utiliser le mˆeme tableau du pr´ec´edent exercice (Question 3) pour exprimer le coˆut et la com-
plexit´e (en utilisant la notation asymptotique Θ) de chaque ligne pour les deux algorithmes
(Algo1, Algo2). Dans l’algorithme Algo1j%i== 0 signifie que idivise jsans reste
3
2. Donner la complexit´e (en utilisant la notation asymptotique Θ) des deux algorithmes Algo1,
Algo2
Question 5 ( 10 pts)
Utiliser l’induction math´ematique pour montrer que lorsque nest une puissance exacte de 2, la
solution de la r´ecurrence
T(n) = (2 si n= 2
2T(n/2) + nsi n= 2k,pour k > 1
est T(n) = n lg n
Question 6 ( 5 pts)
Le Tri-Insertion peut ˆetre exprim´e par une proc´edure r´ecursive comme suit : Pour trier A[1..n], nous
trions r´ecursivement A[1..n-1] et nous ins´erons ensuite A[n] dans le tableau tri´e A[1..n-1]. ´
Ecrivez
l’´equation de r´ecurrence pour le temps d’ex´ecution de cette version r´ecursive du Tri-Insertion.
Question 7 ( 10 pts)
On consid`ere l’algorithme suivant, qui a deux arguments : un tableau T[0...n] de n+ 1 nombres
r´eels et un nombre r´eel x.
Algorithme : Calcul(T[0...n], x :reel) : reel
1sT[n];
2for in1to 0do
3sT[i] + x·s;
4return s ;
1. D´eterminer la complexit´e de cet algorithme en fonction de nen utilisant la notation asymp-
totique Θ.
2. Donner le d´eroulement de l’algorithme pour la donn´ee suivante :
n= 5, T= 380112et x= 2 (utiliser un tableau ayant les colonnes suivantes :
i, s et T[i])
3. Exprimer le r´esultat de l’algorithme Calcul en fonction de xet de T. Que calcul cet algo-
rithme ?
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !