Académique Documents
Professionnel Documents
Culture Documents
Ryma MAHFOUDHI
ryma.mahfoudhi@gmail.com
MOTIVATION
Comment choisir parmi les différentes approches pour résoudre un problème?
2
MOTIVATION
3
COMPLEXITÉ
Définition 1: la complexité temporelle d’un algorithme est le temps mis par ce
dernier pour transformer les données du problème considéré en un ensemble de
résultats.
4
COMPLEXITÉ
Pour comparer des solutions entre-elles, deux méthodes peuvent être
utilisées:
Méthode empirique
Méthode mathématique
5
COMPLEXITÉ TEMPORELLE
Comment calculer le coût d’un algorithme (ou la complexité)?
Définition 3: La complexité d’un algorithme est la mesure du
nombre d’opérations fondamentales qu’il effectue sur un jeu de
données.
La complexité est exprimée comme une fonction de la taille du jeu
de données. Notons Dn l’ensemble des données de taille n et C(d) le
coût de l’algorithme sur la donnée d.
6
PIRE CAS, MEILLEUR CAS ET
CAS MOYEN
Toutes les entrées d’une taille donnée ne nécessitent pas
nécessairement le même temps d’exécution.
Exemple:
Recherche d’un élément C dans un tableau de n élément.
7
COMPLEXITÉ MINIMALE
Complexité minimale :
Tmin(n) = min C(d), ∀d∈Dn
C’est le plus petit nombre d’opérations qu’aura à exécuter
l’algorithme sur un jeu de données de taille fixée.
C’est une borne inférieure de la complexité de l’algorithme sur un
jeu de données de taille n
8
COMPLEXITÉ MAXIMALE
Complexité maximale :
Tmax(n) = max C(d), ∀d∈Dn
C’est le plus grand nombre d’opérations qu’aura à exécuter
l’algorithme sur un jeu de données de taille fixée.
9
COMPLEXITÉ MOYENNE
Complexité moyenne :
Tmoy(n) = ΣC(d)/|Dn|, ∀d∈Dn
C’est la moyenne des complexités de l’algorithme sur des jeux de
données données de taille n.
10
EXEMPLE: ALGORITHME DE
RECHERCHE
int recherche(int *tab, int C)
{ int i; Le cas favorable se présente quand la
i = 0; valeur C se trouve au début du tab:
while (tab[i] != C && i<n) tmin(n) = e + 3t
i = i+1;
if (i == n)
return(0); Affectation e
16
CALCUL DE COMPLEXITÉ
Exemples:
=O
17
18
EXEMPLES
Exemple 1:
a = b;
Temps constant: (1).
Exemple 2:
somme = 0;
for (i=1; i<=n; i++)
somme += n;
Temps: (n)
19
EXEMPLES
Exemple 3:
somme = 0;
for (j=1; j<=n; j++)
for (i=1; i<=n; i++)
somme++;
for (k=0; k<n; k++)
A[k] = k;
20
EXEMPLE DE BOUCLE TANT
QUE (1)
i<-0
Tant que (i<N)
A<-A+B
i<-i+3
Ftq
23
COMPLEXITÉ D’APPEL D’UNE
FONCTION
Fonction pair(a: entier):booléen Début de l’Algorithme
Début Si (pair(n)==Vrai) alors
Si (a mod 2==0) alors n<- n+1
Sinon n<-n+2
retourner Vrai
Sinon Fsi
retourner Faux
Fsi
Fin
24