0% ont trouvé ce document utile (0 vote)
793 vues5 pages

Complexité Algorithmique et Matrices

Le document présente une série d'exercices sur la complexité algorithmique, incluant des analyses de temps d'exécution pour différents algorithmes et opérations sur des matrices. Il aborde également des fonctions récursives et itératives, ainsi que des algorithmes de recherche et de tri, en demandant des calculs de complexité dans divers cas. Chaque exercice nécessite des déterminations de complexité asymptotique et des justifications pour les résultats obtenus.

Transféré par

kukis14
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
793 vues5 pages

Complexité Algorithmique et Matrices

Le document présente une série d'exercices sur la complexité algorithmique, incluant des analyses de temps d'exécution pour différents algorithmes et opérations sur des matrices. Il aborde également des fonctions récursives et itératives, ainsi que des algorithmes de recherche et de tri, en demandant des calculs de complexité dans divers cas. Chaque exercice nécessite des déterminations de complexité asymptotique et des justifications pour les résultats obtenus.

Transféré par

kukis14
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP 1 : COMPLEXITE ALGORITHMIQUE :

Réalisé par : NAHARI IMANE

LAOUAJ KAOUTAR

Exercice 1 :

Temps d’un algorithme T(n)

Pour chacun des fonctions Ti(n) suivant, déterminer sa complexité asymptotique dans la notation
Grand-O. Exemple : T0(n) = 3n ∈ O(n).

1. T1(n) = 6n³ + 10n² + 5n + 2

2. T2(n) = 3 log₂ n + 4

3. T3(n) = 2ⁿ + 6n² + 7n

4. T4(n) = 7k + 2

5. T4(n) = 4 log₂ n + n

6. T5(n) = 2 log₁₀ k + k n²

Exercice 2 :

Temps d’un algorithme T(n)

Considérer les deux algorithmes A1 et A2 avec leurs temps d’exécution T1(n) = 9n² et T2(n) = 100n + 96
respectives.

1. Déterminer la complexité asymptotique des deux algorithmes dans la notation Grand-O.

Quel algorithme a la meilleure complexité asymptotique ?

T1(n) = 9n²

T2(n) = 100n + 96

2. Montrer que vos solutions sont correctes en spécifiant un c et un n0 par algorithme afin que la
relation suivante soit satisfaite : O(f) = {g|∃c > 0 : ∃n0 > 0 : ∀n ≥ n0 : g(n) ≤ cf(n)}

3.Calculer les temps maximales d’exécution des deux algorithmes Ti(n) pour n = 1, n = 3, n = 5, n = 10,

n = 14.

4. Ebaucher les graphes des deux fonctions Ti dans un meme système de coordonné (abscisse n,
ordonné Ti(n)).
5. Pour quelles longueur de donnée n quel algorithme est le plus efficace ? (Astuce : Calculer
l’intersection ...)

6. Quelle est la complexité asymptotique de l’algorithme suivant ? Quelle règle avez- vous appliqué ?

Début

appeler A1 {Ici l’algorithme 1 est exécuté. }

appeler A2 {Ici l’algorithme 2 est exécuté. }

fin

Exercice 3 : Addition de matrices

Considérer les deux matrices quadratiques A et B de taille n :

L’addition de ces deux matrices donne la matrice C quadratique de taille n:

avec : cij = aij + bij ∀i, ∀j

1. Définir le type des matrices quadratiques et déclarer les variables A, B et C.


2. Ecrire un algorithme qui effectue l’addition des deux matrices A et B et stocke les résultats en C.
3. Déterminer la fonction de temps maximale (”worst case”) T(n) pour des matrices de taille n.
4. Déterminer la complexité Grand-O pour des matrices de taille n.

Exercice 4 : Multiplication de matrices :


La multiplication des deux matrices quadratiques de taille n donne la matrice C quadratique de
taille n:
Avec :

1. Ecrire un algorithme qui effectue la multiplication des deux matrices A et B et stocke les
résultats en C.
2. Déterminer la fonction de temps maximale (”worst case”) T(n) pour des matrices de taille n.
3. Déterminer la complexité O(n) pour des matrices de taille n.

Exercice 5: Fonctions F et G mystères

1. Soit la fonction récursive F d’un paramètre entier n suivante :

fonction F(n : entier) : entier

si n = 0

alors

retourner(2)

sinon

retourner(F(n − 1) ∗ F(n − 1))

fin si

Que calcule cette fonction ? Le prouver.

2. Déterminer la complexité de la fonction F. Comment améliorer cette complexité ?

3. Soit la fonction itérative G suivante :

fonction G(n : entier) : entier

R : entier

R←2

pour i ← 1 à n faire

R←R∗R
fin pour

retourner(R)

Que calcule cette fonction ? Le prouver.

4.Déterminer la complexité de la fonction G.

Exercice 6 :

1.Écrire l'algorithme qui recherche un élément dans un vecteur de taille n.

2.Calculer la complexité temporelle en fonction du nombre de comparaisons dans le pire et dans le


meilleur des cas.

3. Refaire les calculs en fonction du nombre d'accès au vecteur.

Exercice 7 :

1.Écrire l'algorithme de tri par sélection.

2. Calculer la complexité temporelle en fonction de nombre de comparaisons et de permutations dans le


pire et dans le meilleur des cas.

3. Refaire les calculs en fonction du nombre d'accès au vecteur.

Exercice 8 :

1.Écrire l'algorithme de tri à Bulles.

2.Calculer la complexité temporelle en fonction de nombre de comparaisons et de permutations dans le


pire et dans le meilleur des cas.

3.Refaire les calculs en fonction du nombre d'accès au vecteur.

4.Comparer avec le tri par sélection.

Exercice 9 :

1.Calculer la complexité temporelle de l'algorithme de recherche dichotomique en fonction du nombre


de comparaisons dans le pire et dans le meilleur des cas.

2.Refaire les calculs en fonction du nombre d'accès au vecteur.

3. Comparer avec l'algorithme de recherche séquentiel.

Vous aimerez peut-être aussi