Vous êtes sur la page 1sur 2

Université de Blida 1 Deuxième année Ingénieur

ALGORITHMIQUES ET COMPLEXITE
Département d’Informatique Année universitaire 2023/2024

TRAVAIL DIRIGE N°4 : COMPLEXITE DES ALGORITHMES

EXERCICE 1 : Pour chaque fonction ci-dessous, donner l’ordre de grandeur du temps


d’exécution parmi les possibilités suivantes : O(1), O(log(N)), O(N) , O(N log(N)) , O(N²), O(N!).
(a) (b) (c)
Fonction F1(n:Entier): Entier Fonction F2(n:Entier): Entier Fonction F3(n:Entier): Entier
Variables: R, i: Entier; Variables: R, i: Entier; Variables: R, i: Entier;
Debut Debut Debut
R← 0; i←0; R← 0; i←0; R← 0; i← 1;
Tanque(i < n Div 2) faire Tanque(i < n) faire Tanque(i < n) faire
R← R + 1; i ← i+1; R← R + F1(i); i ← i+1; R← R + F1(i); i ← i * 2;
Fait; Fait; Fait;
Retourner R; Retourner R; Retourner R;
Fin. Fin. Fin.
(d) (e) (f)
Fonction F4(n:Entier): Entier Procedure F5(n:Entier) Fonction F6(n:Entier): Entier
Variables: R, i: Entier; Variables: R: Entier; Debut
Debut Debut Si n>=0 alors
R← 0; i← 1; R← 0; Retourner 1;
Tanque(i < n) faire Tanque(n>0) faire Sinon
R← R + 2; i ← i * 2; R← R + 2; n ← n Div 2; Retourner 0;
Fait; Ecrire(R); Fsi;
Retourner R; Fait; Fin.
Fin. Fin.

EXERCICE 2 : Donner la complexité des algorithmes suivants :


(b)
(a)
Fonction puissance (x: Reel, n: Entier Positif): Reel Fonction f1 (n: Entier): Entier
Var resultat : Reel ; i: Entier; Var total,i ,j : Entier;
Debut Debut
resultat ← 1; total←0;
si (n=0) alors Pour i ← 1 à n-1 faire
resultat←1 ; Pour j ← i+1 à n faire
sinon total←total+1;
Pour i←1 à n faire Fait;
resultat ← resultat*x ; Fait;
Fait; Retourner total;
Fsi; Fin.
Retourner resultat ;
Fin.
Université de Blida 1 Deuxième année Ingénieur
ALGORITHMIQUES ET COMPLEXITE
Département d’Informatique Année universitaire 2023/2024

(c)
Fonction evaluer (P: Liste, X:Reel): Reel
Var resultat : Reel;
Debut
Tantque(P<> Nil) faire
resultat← resultat + coeff(P)* puissance (X,puis(P)) ;
P ← suiv(P);
Fait;
Retourner resultat ;
Fin.

(d)
Fonction RechDicho(Tab :Tableau d’Entier, d, f:Entier, x :Entier) : Boolean
Var m: Entier;
Debut
Tanque (d<=f) alors
m ← (d+f) Div 2 ;
Si (Tab[m]=x) Alors
Retourner (vrai);
Sinon
Si (x<Tab[mil]) Alors
f← m-1;
Sinon
d ← m+1;
Fsi;
Fsi;
Fait;
Retourner (Faux);
Fin.

EXERCICE 3

Donner la formule de récurrence T(n) et utiliser un arbre récursif pour déterminer une borne
supérieure asymptotique pour la récurrence T(n) pour les solutions des exercices suivants :
1. Somme des éléments d’un tableau sommeTab (Exercice 2, série 3),
2. La fonction de Newton (Exercice 4, série 3),
3. Calcul de la suite de Fibonacci (Exemple de cours),
4. Transposée d'une matrice (Exercice 2, série 3),

Vous aimerez peut-être aussi