Vous êtes sur la page 1sur 24

n5 Introduction et vue densemble Leon n.

1 Complexit des algorithmes

Structures de donnes

COMPLEXIT DES ALGORITHMES

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Plan de la leon
Complexit temporelle Classes de complexit

Calcul de la complexit
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Complexit temporelle

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Complexit temporelle
Le temps d'excution dpend de: la complexit la qualit du code gnr la vitesse d'excution sur le microprocesseur
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Complexit temporelle
On s'intresse gnralement
Au cot exact si possible Au cot moyen sur toutes les excutions du programme
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Complexit temporelle
On s'intresse gnralement
Au cas le plus favorable Au cas le pire

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Complexit temporelle
Le choix de l'unit de mesure

Nb d'oprations lmentaires Affectations, comparaisons, +, La complexit ne dpend pas de la nature prcise des donnes mais de leur taille : C(n)=K.n

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Mesure de la complexit
En fait on se pose la question :
Que devient le temps de calcul si on multiplie la taille des donnes par 2?

On peut comparer des algorithmes entre eux


Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Mesure de la complexit
Notation de Landau
C(n) =O(f(n)) Gnralement f une combinaison de polynmes, logarithmes ou exponentielles
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Classes de complexit

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Classes de complexit
Algorithmes sub-linaires Complexit en O(log n)
La recherche d'un lment dans un ensemble ordonn fini de cardinal n
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Classes de complexit
Algorithmes linaires Complexit en O(n) ou en O(nlog n)
Algorithmes optimaux de tri
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Classes de complexit
Algorithmes polynomiaux Complexit en O(n2) et O(n3)
Multiplication des matrices Parcours dans les graphes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Classes de complexit
Algorithmes exponentiels
Complexit suprieure tout polynme en n
Impraticables ds que n est suprieure quelques dizaines d'units
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Classes de complexit

La clart et la simplicit sont aussi importants que l'efficacit dans la conception des algorithmes

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Comment calculer la complexit ?

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Oprations de base
Affectation, lecture, criture

C(getchar() ) = O(1)
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Sauf
L'affectation des tableaux (PL/1)
L'affectation avec appel de fonction
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Instructions squentielles
C( I1 ;...;Ip ) = max(C( I1 ), ... , C( Ip ))

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Instructions conditionnelles
C( si cond alors I1 sinon I2 ) = C(cond) + max(C(I1), C(I2))

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Instructions itratives
C( pour i=i1 jqa i2 faire Ti) = CTi i2 i1 1 maxCTi

i1 i i2

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Recherche du plus petit lment int plusPetit (int x[]; int n){ int k = 0; for(int i = 1; i < n; i++) /* k indice du plus petit lment de x[0..i-1] */ if(x[i] < x[k]) k = i; return k; }

n-1
Prof. A. EL FAKER

comparaisons

La complexit est donc =O(n)


ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Cas des fonctions rcursives
Associer C(n) inconnue

Construire une relation de rcurrence


Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n5 Introduction et vue densemble Leon n. 1 Complexit des algorithmes

Structures de donnes

Calcul de la complexit
Exponentielle rcursive
x0 1 x
n

x x x

n 2 2 n1 2

Si n est pair

Si n est impair

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI