Vous êtes sur la page 1sur 2

Université Constantine 2

Faculté des Nouvelles Technologies de l'Information et de la Communication


Département de Tronc Commun (MI)

ASD – 2023/2024

Série de TD 2

Objectifs du TD 2 :
 Etudier un algorithme pour comprendre son fonctionnement en analysant son code.
 Puis déduire le pire des cas lors de l’exécution de l’algorithme (son déroulement).
 Finalement estimer et calculer sa complexité dans le pire des cas (avec justification : voir cours :
chapitre 2).

Exercice 01
Analyser la complexité des algorithmes suivants en déterminant l’ordre du temps de calcul, pour chacun d’eux
(Justifiez clairement vos réponses)

Algorithme A, Algorithme B,
… …
Début Début
1. i0 1. i0
2. Tant que i < N faire 2. Tant que i <N faire
3. j1 3. jN
4. Tant que j <= N faire 4. Tant que j < =1 faire
5. jj+1 5. jj -2
Ftq ftq
6. ii+1 6. ii+1
Ftq ftq
Fin Fin

Exercice 02
Analyser les portions de codes suivantes pour :
- Comprendre le fonctionnement de l’algorithme A puis calculer sa complexité.

Algorithme A, Fonction occurrence ( ???……………)


……… ……
Début Début
………… 1. Co←0
1. Lire(V) 2. Pour i=1 à N faire
2. Pour j=1 à V faire 3. Pour j=1 à M faire
3. Lire (nbre) 4. Si (nbre = =Mat(i,j))
4. Ecrire (‘le nombre d’occurrence de’, nbre , ‘dans la matrice 5. alors Co←Co+1
est :’, occurrence(Mat, nbre, N, M)) Finsi
Finpour Finpour
………….. Finpour
Fin Fin

1
Exercice 3
Analysez la portion du code de l’algorithme A pour calculer sa complexité sachant que le coût de la fonction
Fonc (i, j) est (N). Justifiez clairement vos réponses et nommez l’algorithme A selon sa complexité.
Algorithme A
…….
Début
1. Pour i1 à N faire
2. ji
3. Tant que j ≤ N faire
4. C[j] Fonc(i, j)
5. j j +1
Fin Tant que
Fin Pour
Fin

Exercice 04
La recherche d’un élément E dans un tableau trié de N entiers, peut être effectuée par:
1. Un algorithme de recherche séquentielle (déjà traitée au TD 1).
2. ou un algorithme de recherche dichotomique (à développer) .
On s'intéresse à déterminer et comparer la complexité des deux algorithmes recherche.

Exercice 05
Evaluer la complexité maximale (au pire des cas: Algorithme Tri-a-Bulles,
T[j-1] > T[j] toujours vérifiée) du morceau de ………………
Début
code suivant: 1. Pour i← n à 1 faire
2. Pour j←2 à i faire
3. Si Tab[j-1] > Tab[j] alors
4. temp ←Tab[j-1] ;
5. Tab[j-1] ← Tab[j] ;
6. Tab[j] ← temp
Finsi
Finpour
Finpour
Fin

Exercice 6 :
Nous revenons vers le problème traité en TP 2, celui des nombres premiers, il s’agissait de :

1. Proposer un algorithme, puis le programme Java correspondant, qui détermine les M (Exp : M= 100)
premiers nombres premiers, en utilisant une fonction itérative Premier (N).
2. Puis d’optimiser (au maximum) la fonction itérative Premier (N) ?
3. Maintenant, nous vous demandons d’analyser et estimer les complexités des solutions optimisées de la
fonction itérative Premier (N), puis déterminer la meilleure solution en termes d’efficacité.
4. Finalement, analyser la complexité de l’algorithme 100-premiers-nombres-premiers, que déduisez vous.

Bonne : révision du chap2, analyse des algorithmes et estimation de leur complexité.

Vous aimerez peut-être aussi