SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
CHAPITRE II:
COMPLEXITÉ
Université Saad Dahlab de Blida
Faculté des Sciences
Département d’Informatique
Licence d’Informatique
Semestre 3 (2ème année)
Algorithmique et Structures de Données
Mme AROUSSI
2016-2017
Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
PLAN DU CHAPITRE II
 Introduction
 Définitions
 Type de la Complexité
 Notation de de Landau
 Classes de complexité
 Calcul de la Complexité
2
3
 Le temps d’exécution d’un algorithme dépend des facteurs
suivants :
 Les données du programme,
 La qualité du compilateur (langage utilisé),
 La machine utilisée (vitesse, mémoire, ),
 La complexité de l’algorithme lui-même,
 On cherche à mesurer la complexité d’un algorithme
indépendamment de la machine et du langage utilisés, c.-
à-d. uniquement en fonction de la taille des données que
l’algorithme doit traiter.
INTRODUCTION
4
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
 Soit P(X) un polynôme de degré n
P(X) = anXn + an-1Xn-1 + ... + a1X + a0 ,
Où: n : entier naturel
an, an-1, ..., a1, a0 : les coefficients du polynôme qui sont
stockés dans le tableau T[0..n] d’entiers.
 Ecrire la fonction Calcul_poly(T: Tableau[n+1]d’entier,
X:entier): entier.
5
2ème variante
Début
Inter1
P 0
Pour  0 à n faire
DP
P  P+ Inter *T[i]
Inter  Inter * X
FP
Fin
1ère variante
Début
P0
Pour i  0 à n faire
DP
P  P+ T[i] * Puiss (X, i)
FP
Fin
1ère Complexité :
(n+1) additions
(n+1) multiplications
(n+1) puissances
Au moins 3 variables
2ème Complexité :
(n+1) additions
2(n+1) multiplications
3 variables
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
6
 3ème variante: Schéma de Horner
P(X) = anXn + an-1Xn-1 + ... +a2X2 + a1X + a0
=(anXn-1 + an-1Xn-2 + ... +a2X + a1)X + a0
= ((anXn-1 + an-1Xn-2 + ... +a2)X+ a1)X + a0
= ............
= (....(((anX + an-1)X+ an-2 )X.....)X+ ... +a2)X+ a1)X + a0
3ème variante
Début
P  T[n]
Pour i  n-1 à 0 faire
P  P*X + T[i]
FP
Fin
3ème Complexité :
n additions
n multiplications
2 variables
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
7
Variantes Première Deuxième Troisième
Complexité
en temps
(en terme de
nombre
d’opérations)
(n+1) additions
(n+1) multiplications
(n+1) puissances
(n+1) additions
2(n+1)
multiplications
n additions
n multiplications
Complexité
en espace
mémoire
(Variables)
P, i et les variables
de la fonction
puissance appelée
(n+1) fois
P, i et Inter P, i
 Nécessité d’estimer la complexité en temps et en
espace d’un algorithme avant de l’écrire et
l’implémenter
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
8
 La complexité (temporelle) d’un algorithme est la
mesure du nombre d’opérations fondamentales
(affectations, comparaisons, opérations arithmétiques)
qu’il effectue sur un jeu de données. Elle est exprimée
comme une fonction de la taille du jeu de données.
 Elle permet en particulier de comparer deux algorithmes traitant
le même calcul. En d’autres termes, elle permet de déterminer si
un algorithme A est meilleur qu’un algorithme B
indépendamment de la machine, du langage de programmation,
du compilateuret des détails d’implémentation.
DÉFINITION
9
TYPE DE LA COMPLEXITÉ
Complexité au
meilleur
•C'est le plus petit nombre
d'opérations qu'aura à
exécuter l'algorithme sur
un jeu de données de
taille n.
•Tmin(n) = mindDn
T(d)
Complexité en
moyenne
•C’est la moyenne des
complexités de l’algorithme
sur des jeux de données de
taille n
•Tmoy(n) = ΣdDn
T(d) / |Dn|
Complexité au
pire
• C’est le plus grand
nombre d’opérations
qu’aura à exécuter
l’algorithme sur un jeu de
données de taille n
•Tmax(n) = maxdDn
T(d)
 Notations:
 Dn l’ensemble des données de taille n
 T(n) le nombre d’opération sur un jeu donnée de taille n
10
 Exemple: T(n) = O(n2) veut dire qu'il existe une
constante c > 0 et une constante n0 > 0 tel que pour tout
n > n0 T(n) <= c n2
 La notation de Landau « O » est celle qui est le
plus communément utilisée pour expliquer
formellement les performances d'un algorithme.
NOTATION DE LANDAU
 Cette notation exprime la limite supérieure d'une
fonction dans un facteur constant.
11
 Les règles de la notation O sont les suivantes :
 Les termes constants : O(c) = O(1)
 Les constantes multiplicatives sont omises :
O(cT ) = c O(T) = O(T)
 L'addition est réalisée en prenant le maximum :
O(T1) + O(T2) = O(T1 + T2) = max(O(T1);O(T2))
 La multiplication reste inchangée
O(T1)O(T2) = O(T1T2)
NOTATION DE LANDAU
12
 Supposant que le temps d'exécution d’un algorithme est décrit par la fonction
T(n) = 3n2+10n+10, Calculer O(T(n))?
O(T(n)) = O(3 n2 + 10n + 10)
= O(max (3 n2, 10n, 10))
= O(3 n2)
= O (n2)
 Remarque:
Pour n = 10 nous avons :
 Temps d'exécution de 3 n2 : 3(10)2 / 3(10)2+10(10)+10 = 73,2%
 Temps d'exécution de 10n : 10(10) / 3(10)2+10(10)+10 = 24,4%
 Temps d'exécution de 10 : 10 / 3(10)2+10(10)+10 = 2,4%
Le poids de 3 n2 devient encore plus grand quand n = 100, soit 96,7%
On peut négliger les quantités 10n et 10.
Ceci explique les règles de la notation O.
NOTATION DE LANDAU
13
 Exercice 1 : Soient T1(n) et T2(n) les temps d'exécution
de 2 fragments de programme P1 et P2 respectivement.
Montrer les règles suivantes :
 Somme : Si T1(n) = O (f(n)) et T2(n) = O(g(n) ) alors
T1(n) + T2(n) = O(max (f(n), g(n) )
 Produit : Si T1(n) = O( f(n) ) et T2(n) = O(g(n)) Alors
T1(n) * T2(n) = O (f(n) * g(n) )
NOTATION DE LANDAU
14
CLASSES DE COMPLEXITÉ
Classe Notation O Exemple
Constante O(1) Accéderau premierélémentd'un ensemble de données
Linéaire O(n) Parcourirun ensemble de données
Logarithmique O(log(n)) Couperun ensemblede données en deux parties égales,
puis couperces moitiés en deuxparties égales,etc.
Quasi-linéaire O(n log(n)) Couperrépétitivementun ensemble de données en deux
et combinerles solutions partielles pourcalculer la
solution générale
Quadratique O(n2) Parcourirun ensemble de données en utilisantdeux
boucles imbriquées
Polynomiale O(nP) Parcourirun ensemble de données en utilisantP
boucles imbriquées
Exponentielle O(an) Générertous les sous-ensembles possibles
d'un ensemblede données
15
CLASSES DE COMPLEXITÉ
16
 Exercice 2 : Compléter les tableaux suivants sachant que :
 Dans le tableau (a), il s'agit de calculer le nombre
d'opérations nécessaire pour exécuter l'algorithme en
fonction de sa complexité et de la taille d'instance du
problème traité.
CLASSES DE COMPLEXITÉ
17
 Exercice 2 : Compléter les tableaux suivants sachant que :
 Dans le tableau (a), il s'agit de calculer le nombre
d'opérations nécessaire pour exécuter l'algorithme en
fonction de sa complexité et de la taille d'instance du
problème traité.
CLASSES DE COMPLEXITÉ
18
 Exercice 2 : Compléter les tableaux suivants sachant que :
 Dans le tableau (b), il s'agit de calculer le temps
nécessaire à cela en supposant que l'on dispose d'un
ordinateur capable de réaliser 109 opérations par
seconde.
CLASSES DE COMPLEXITÉ
19
 Exercice 2 : Compléter les tableaux suivants sachant que :
 Dans le tableau (c), on calcule la plus grande instance de
problème traitable dans le temps imparti.
CLASSES DE COMPLEXITÉ
20
 Exercice 2 (Solution):.
CLASSES DE COMPLEXITÉ
21
 Exercice 2 (Solution):.
CLASSES DE COMPLEXITÉ
22
CALCUL DE LA COMPLEXITÉ
1. Cas d'une instruction simple (écriture, lecture, affectation ) :
Le temps d'exécution de chaque instruction simple est O(1).
2. Cas d'une suite d'instructions simples: Le temps d ’exécution
d'une séquence d'instruction est déterminée par la règle de la
somme. C'est donc le temps de la séquence qui a le plus grand
temps d ’exécution: O(T) = O (T1 + T2) = max(O(T1);O(T2)).
23
CALCUL DE LA COMPLEXITÉ
 Exemple 2:
Permutation (Var S: tableau [n] d’entier, i, j: entier)
O(T) = O (T1 + T2 + T3) = O(1)
tmpS[i] O(T1) = O(1)
S[i]S[j] O(T2) = O(1)
S[j]tmp O(T3) = O(1)
24
CALCUL DE LA COMPLEXITÉ
3. Cas d'un traitement conditionnel: Le temps d'exécution d'une
instruction SI est le temps d ’exécution des instructions exécutées
sous condition, plus le temps pour évaluer la condition. Pour une
alternative, on se place dans le cas le plus défavorable.
25
CALCUL DE LA COMPLEXITÉ
4. Cas d'un traitement itératif : Le temps d ’exécution d'une boucle
est la somme du temps pour évaluer le corps et du temps pour
évaluer la condition. Souvent ce temps est le produit du nombre
d'itérations de la boucle par le plus grand temps possible pour une
exécution du corps.
Boucle Pour Boule Tant que
26
CALCUL DE LA COMPLEXITÉ
 Exemple 2:
Recherche séquentielle (S: tableau [n] d’entier, x: entier): booléen
i 0 O(1)
Trouve  faux O(1)
Tant que ((i<n) et (non trouve)) faire Condition = O(1);
nombre d’itération = nDTQ
Si (S[i] = x) alors O(1)
Trouve  vrai O(1)
i i + 1 O(1)
FTQ
Retourner trouve Q(1)
O(T) = max(O (1) + O (n *1) + O(1)) = O (n)
27
 Exercice 3: Considérer les algorithmes suivants avec un
temps d’exécution T(n) pour une longueur de données n.
Déterminer leur complexité et les classer par ordre croissant
 Algorithme A1 T(n) = 3n+2
 Algorithme A2 T(n) = 6
 Algorithme A3 T(n) = 4n2+n+2
 Algorithme A4 :
Pour i1 à n faire Exécuter A3
Exécuter A1
CLASSES DE COMPLEXITÉ
28
 Exercice 3 (suite): Considérer les algorithmes suivants
avec un temps d’exécution T(n) pour une longueur de
données n. Déterminer leur complexité et les classer par
ordre croissant
 Algorithme A5 :
Exécuter A1 ; Exécuter A2 ; Exécuter A3 ;
 Algorithme A6
Pour i1 à 5 faire Exécuter A1
CLASSES DE COMPLEXITÉ
29
 Exercice 4: Calculer la complexité au pire des algorithmes
suivants :
a) Pour i  1 à n faire Op
b) Pour i 0 à n faire Op
c) Pour i 0 à n-1 faire
Op1
Pour j0 à n-1 faire Op2
CLASSES DE COMPLEXITÉ
30
 Exercice 4 (suite): Calculer la complexité au pire des
algorithmes suivants :
d) Pour i 0 à n-1 faire
Op1
Pour j0 à n-1 faire
Op2
Pour k0 à n-1 faire Op3
e) Pour i 0 à n-1 faire
Op1
Pour j1 à i faire Op2
CLASSES DE COMPLEXITÉ
31
 Exercice 4 (suite): Calculer la complexité au pire des
algorithmes suivants :
f) Tant que (n > 0) faire
Op
nn/2
g) Pour i0 à n faire
Si i%2 = 0 alors Op1
Sinon
Pour j0 à n faire Op2
CLASSES DE COMPLEXITÉ
32
 Exercice 4 (suite): Calculer la complexité au pire des
algorithmes suivants :
h) Pour i0 à n faire
Op1
j 1
Répéter
Op2
jj+3
jusqu’à j >i
CLASSES DE COMPLEXITÉ
i) Pour i0 à n faire
Op1
j1
Répéter
Op2
jj*3
jusqu’à j >n
33
 Exercice 4 (suite): Calculer la complexité au pire des
algorithmes suivants :
k 1
Répéter
j  1
Tant que (j ≤n) faire jj*10
k k+2
jusqu’à (k ≤n)
CLASSES DE COMPLEXITÉ
SOURCES DE CE COURS
 Frédéric Vivien, Algorithmique avancée, École Normale Supérieure de Lyon, 2002.,
pp. 93. Disponible sur http://perso.ens-lyon.fr/frederic.vivien/Enseignement/Algo-
2001-2002/Cours.pdf
 Slim Msfar, Algorithmique et Complexité, 2012, pp 104. Disponible sur
http://p835.phpnet.org/testremorque/upload/catalogue/coursalgorithmi.pdf
 Djamel-Eddine ZEGOUR, O-Notation, École nationale Supérieure d’Informatique,
pp 33. Disponible sur
http://www.zegour.netii.net/Site%20secondaire/Mcp/Cours%20ppt/1_o-notation.pdf
34

Más contenido relacionado

La actualidad más candente

Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptMbarkiIsraa
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmiqueAtef MASMOUDI
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binairesSana Aroussi
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données IIRiadh Bouslimi
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmiqueelharraj
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsMohamed Heny SELMI
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsSana Aroussi
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesSana Aroussi
 
Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices sarah Benmerzouk
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheRiadh Harizi
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 

La actualidad más candente (20)

Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.ppt
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
 
Algorithmes de jeux
Algorithmes de jeuxAlgorithmes de jeux
Algorithmes de jeux
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binaires
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de Données
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
 
Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
 

Similar a Chapitre 2 complexité

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdfSongSonfack
 
Présentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptxPrésentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptxouassityoussef
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011sunprass
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrentsmohamed_SAYARI
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
Algo_avance_et_complexite.pdf
Algo_avance_et_complexite.pdfAlgo_avance_et_complexite.pdf
Algo_avance_et_complexite.pdfcheblatouati1
 

Similar a Chapitre 2 complexité (20)

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 
Présentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptxPrésentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptx
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
Video
VideoVideo
Video
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 
Asservis partie1
Asservis partie1Asservis partie1
Asservis partie1
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
 
Algo_avance_et_complexite.pdf
Algo_avance_et_complexite.pdfAlgo_avance_et_complexite.pdf
Algo_avance_et_complexite.pdf
 
Cours1
Cours1Cours1
Cours1
 

Más de Sana Aroussi

Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court cheminSana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheSana Aroussi
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminSana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheSana Aroussi
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statiqueSana Aroussi
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Sana Aroussi
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesSana Aroussi
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busSana Aroussi
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptionsSana Aroussi
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoiresSana Aroussi
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétudeSana Aroussi
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Sana Aroussi
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurSana Aroussi
 
Chapitre iii circuits séquentiels
Chapitre iii circuits séquentielsChapitre iii circuits séquentiels
Chapitre iii circuits séquentielsSana Aroussi
 

Más de Sana Aroussi (20)

Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
 
Chapitre iii circuits séquentiels
Chapitre iii circuits séquentielsChapitre iii circuits séquentiels
Chapitre iii circuits séquentiels
 

Último

Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 

Último (20)

Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 

Chapitre 2 complexité

  • 1. CHAPITRE II: COMPLEXITÉ Université Saad Dahlab de Blida Faculté des Sciences Département d’Informatique Licence d’Informatique Semestre 3 (2ème année) Algorithmique et Structures de Données Mme AROUSSI 2016-2017 Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
  • 2. PLAN DU CHAPITRE II  Introduction  Définitions  Type de la Complexité  Notation de de Landau  Classes de complexité  Calcul de la Complexité 2
  • 3. 3  Le temps d’exécution d’un algorithme dépend des facteurs suivants :  Les données du programme,  La qualité du compilateur (langage utilisé),  La machine utilisée (vitesse, mémoire, ),  La complexité de l’algorithme lui-même,  On cherche à mesurer la complexité d’un algorithme indépendamment de la machine et du langage utilisés, c.- à-d. uniquement en fonction de la taille des données que l’algorithme doit traiter. INTRODUCTION
  • 4. 4 INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME  Soit P(X) un polynôme de degré n P(X) = anXn + an-1Xn-1 + ... + a1X + a0 , Où: n : entier naturel an, an-1, ..., a1, a0 : les coefficients du polynôme qui sont stockés dans le tableau T[0..n] d’entiers.  Ecrire la fonction Calcul_poly(T: Tableau[n+1]d’entier, X:entier): entier.
  • 5. 5 2ème variante Début Inter1 P 0 Pour  0 à n faire DP P  P+ Inter *T[i] Inter  Inter * X FP Fin 1ère variante Début P0 Pour i  0 à n faire DP P  P+ T[i] * Puiss (X, i) FP Fin 1ère Complexité : (n+1) additions (n+1) multiplications (n+1) puissances Au moins 3 variables 2ème Complexité : (n+1) additions 2(n+1) multiplications 3 variables INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
  • 6. 6  3ème variante: Schéma de Horner P(X) = anXn + an-1Xn-1 + ... +a2X2 + a1X + a0 =(anXn-1 + an-1Xn-2 + ... +a2X + a1)X + a0 = ((anXn-1 + an-1Xn-2 + ... +a2)X+ a1)X + a0 = ............ = (....(((anX + an-1)X+ an-2 )X.....)X+ ... +a2)X+ a1)X + a0 3ème variante Début P  T[n] Pour i  n-1 à 0 faire P  P*X + T[i] FP Fin 3ème Complexité : n additions n multiplications 2 variables INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
  • 7. 7 Variantes Première Deuxième Troisième Complexité en temps (en terme de nombre d’opérations) (n+1) additions (n+1) multiplications (n+1) puissances (n+1) additions 2(n+1) multiplications n additions n multiplications Complexité en espace mémoire (Variables) P, i et les variables de la fonction puissance appelée (n+1) fois P, i et Inter P, i  Nécessité d’estimer la complexité en temps et en espace d’un algorithme avant de l’écrire et l’implémenter INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
  • 8. 8  La complexité (temporelle) d’un algorithme est la mesure du nombre d’opérations fondamentales (affectations, comparaisons, opérations arithmétiques) qu’il effectue sur un jeu de données. Elle est exprimée comme une fonction de la taille du jeu de données.  Elle permet en particulier de comparer deux algorithmes traitant le même calcul. En d’autres termes, elle permet de déterminer si un algorithme A est meilleur qu’un algorithme B indépendamment de la machine, du langage de programmation, du compilateuret des détails d’implémentation. DÉFINITION
  • 9. 9 TYPE DE LA COMPLEXITÉ Complexité au meilleur •C'est le plus petit nombre d'opérations qu'aura à exécuter l'algorithme sur un jeu de données de taille n. •Tmin(n) = mindDn T(d) Complexité en moyenne •C’est la moyenne des complexités de l’algorithme sur des jeux de données de taille n •Tmoy(n) = ΣdDn T(d) / |Dn| Complexité au pire • C’est le plus grand nombre d’opérations qu’aura à exécuter l’algorithme sur un jeu de données de taille n •Tmax(n) = maxdDn T(d)  Notations:  Dn l’ensemble des données de taille n  T(n) le nombre d’opération sur un jeu donnée de taille n
  • 10. 10  Exemple: T(n) = O(n2) veut dire qu'il existe une constante c > 0 et une constante n0 > 0 tel que pour tout n > n0 T(n) <= c n2  La notation de Landau « O » est celle qui est le plus communément utilisée pour expliquer formellement les performances d'un algorithme. NOTATION DE LANDAU  Cette notation exprime la limite supérieure d'une fonction dans un facteur constant.
  • 11. 11  Les règles de la notation O sont les suivantes :  Les termes constants : O(c) = O(1)  Les constantes multiplicatives sont omises : O(cT ) = c O(T) = O(T)  L'addition est réalisée en prenant le maximum : O(T1) + O(T2) = O(T1 + T2) = max(O(T1);O(T2))  La multiplication reste inchangée O(T1)O(T2) = O(T1T2) NOTATION DE LANDAU
  • 12. 12  Supposant que le temps d'exécution d’un algorithme est décrit par la fonction T(n) = 3n2+10n+10, Calculer O(T(n))? O(T(n)) = O(3 n2 + 10n + 10) = O(max (3 n2, 10n, 10)) = O(3 n2) = O (n2)  Remarque: Pour n = 10 nous avons :  Temps d'exécution de 3 n2 : 3(10)2 / 3(10)2+10(10)+10 = 73,2%  Temps d'exécution de 10n : 10(10) / 3(10)2+10(10)+10 = 24,4%  Temps d'exécution de 10 : 10 / 3(10)2+10(10)+10 = 2,4% Le poids de 3 n2 devient encore plus grand quand n = 100, soit 96,7% On peut négliger les quantités 10n et 10. Ceci explique les règles de la notation O. NOTATION DE LANDAU
  • 13. 13  Exercice 1 : Soient T1(n) et T2(n) les temps d'exécution de 2 fragments de programme P1 et P2 respectivement. Montrer les règles suivantes :  Somme : Si T1(n) = O (f(n)) et T2(n) = O(g(n) ) alors T1(n) + T2(n) = O(max (f(n), g(n) )  Produit : Si T1(n) = O( f(n) ) et T2(n) = O(g(n)) Alors T1(n) * T2(n) = O (f(n) * g(n) ) NOTATION DE LANDAU
  • 14. 14 CLASSES DE COMPLEXITÉ Classe Notation O Exemple Constante O(1) Accéderau premierélémentd'un ensemble de données Linéaire O(n) Parcourirun ensemble de données Logarithmique O(log(n)) Couperun ensemblede données en deux parties égales, puis couperces moitiés en deuxparties égales,etc. Quasi-linéaire O(n log(n)) Couperrépétitivementun ensemble de données en deux et combinerles solutions partielles pourcalculer la solution générale Quadratique O(n2) Parcourirun ensemble de données en utilisantdeux boucles imbriquées Polynomiale O(nP) Parcourirun ensemble de données en utilisantP boucles imbriquées Exponentielle O(an) Générertous les sous-ensembles possibles d'un ensemblede données
  • 16. 16  Exercice 2 : Compléter les tableaux suivants sachant que :  Dans le tableau (a), il s'agit de calculer le nombre d'opérations nécessaire pour exécuter l'algorithme en fonction de sa complexité et de la taille d'instance du problème traité. CLASSES DE COMPLEXITÉ
  • 17. 17  Exercice 2 : Compléter les tableaux suivants sachant que :  Dans le tableau (a), il s'agit de calculer le nombre d'opérations nécessaire pour exécuter l'algorithme en fonction de sa complexité et de la taille d'instance du problème traité. CLASSES DE COMPLEXITÉ
  • 18. 18  Exercice 2 : Compléter les tableaux suivants sachant que :  Dans le tableau (b), il s'agit de calculer le temps nécessaire à cela en supposant que l'on dispose d'un ordinateur capable de réaliser 109 opérations par seconde. CLASSES DE COMPLEXITÉ
  • 19. 19  Exercice 2 : Compléter les tableaux suivants sachant que :  Dans le tableau (c), on calcule la plus grande instance de problème traitable dans le temps imparti. CLASSES DE COMPLEXITÉ
  • 20. 20  Exercice 2 (Solution):. CLASSES DE COMPLEXITÉ
  • 21. 21  Exercice 2 (Solution):. CLASSES DE COMPLEXITÉ
  • 22. 22 CALCUL DE LA COMPLEXITÉ 1. Cas d'une instruction simple (écriture, lecture, affectation ) : Le temps d'exécution de chaque instruction simple est O(1). 2. Cas d'une suite d'instructions simples: Le temps d ’exécution d'une séquence d'instruction est déterminée par la règle de la somme. C'est donc le temps de la séquence qui a le plus grand temps d ’exécution: O(T) = O (T1 + T2) = max(O(T1);O(T2)).
  • 23. 23 CALCUL DE LA COMPLEXITÉ  Exemple 2: Permutation (Var S: tableau [n] d’entier, i, j: entier) O(T) = O (T1 + T2 + T3) = O(1) tmpS[i] O(T1) = O(1) S[i]S[j] O(T2) = O(1) S[j]tmp O(T3) = O(1)
  • 24. 24 CALCUL DE LA COMPLEXITÉ 3. Cas d'un traitement conditionnel: Le temps d'exécution d'une instruction SI est le temps d ’exécution des instructions exécutées sous condition, plus le temps pour évaluer la condition. Pour une alternative, on se place dans le cas le plus défavorable.
  • 25. 25 CALCUL DE LA COMPLEXITÉ 4. Cas d'un traitement itératif : Le temps d ’exécution d'une boucle est la somme du temps pour évaluer le corps et du temps pour évaluer la condition. Souvent ce temps est le produit du nombre d'itérations de la boucle par le plus grand temps possible pour une exécution du corps. Boucle Pour Boule Tant que
  • 26. 26 CALCUL DE LA COMPLEXITÉ  Exemple 2: Recherche séquentielle (S: tableau [n] d’entier, x: entier): booléen i 0 O(1) Trouve  faux O(1) Tant que ((i<n) et (non trouve)) faire Condition = O(1); nombre d’itération = nDTQ Si (S[i] = x) alors O(1) Trouve  vrai O(1) i i + 1 O(1) FTQ Retourner trouve Q(1) O(T) = max(O (1) + O (n *1) + O(1)) = O (n)
  • 27. 27  Exercice 3: Considérer les algorithmes suivants avec un temps d’exécution T(n) pour une longueur de données n. Déterminer leur complexité et les classer par ordre croissant  Algorithme A1 T(n) = 3n+2  Algorithme A2 T(n) = 6  Algorithme A3 T(n) = 4n2+n+2  Algorithme A4 : Pour i1 à n faire Exécuter A3 Exécuter A1 CLASSES DE COMPLEXITÉ
  • 28. 28  Exercice 3 (suite): Considérer les algorithmes suivants avec un temps d’exécution T(n) pour une longueur de données n. Déterminer leur complexité et les classer par ordre croissant  Algorithme A5 : Exécuter A1 ; Exécuter A2 ; Exécuter A3 ;  Algorithme A6 Pour i1 à 5 faire Exécuter A1 CLASSES DE COMPLEXITÉ
  • 29. 29  Exercice 4: Calculer la complexité au pire des algorithmes suivants : a) Pour i  1 à n faire Op b) Pour i 0 à n faire Op c) Pour i 0 à n-1 faire Op1 Pour j0 à n-1 faire Op2 CLASSES DE COMPLEXITÉ
  • 30. 30  Exercice 4 (suite): Calculer la complexité au pire des algorithmes suivants : d) Pour i 0 à n-1 faire Op1 Pour j0 à n-1 faire Op2 Pour k0 à n-1 faire Op3 e) Pour i 0 à n-1 faire Op1 Pour j1 à i faire Op2 CLASSES DE COMPLEXITÉ
  • 31. 31  Exercice 4 (suite): Calculer la complexité au pire des algorithmes suivants : f) Tant que (n > 0) faire Op nn/2 g) Pour i0 à n faire Si i%2 = 0 alors Op1 Sinon Pour j0 à n faire Op2 CLASSES DE COMPLEXITÉ
  • 32. 32  Exercice 4 (suite): Calculer la complexité au pire des algorithmes suivants : h) Pour i0 à n faire Op1 j 1 Répéter Op2 jj+3 jusqu’à j >i CLASSES DE COMPLEXITÉ i) Pour i0 à n faire Op1 j1 Répéter Op2 jj*3 jusqu’à j >n
  • 33. 33  Exercice 4 (suite): Calculer la complexité au pire des algorithmes suivants : k 1 Répéter j  1 Tant que (j ≤n) faire jj*10 k k+2 jusqu’à (k ≤n) CLASSES DE COMPLEXITÉ
  • 34. SOURCES DE CE COURS  Frédéric Vivien, Algorithmique avancée, École Normale Supérieure de Lyon, 2002., pp. 93. Disponible sur http://perso.ens-lyon.fr/frederic.vivien/Enseignement/Algo- 2001-2002/Cours.pdf  Slim Msfar, Algorithmique et Complexité, 2012, pp 104. Disponible sur http://p835.phpnet.org/testremorque/upload/catalogue/coursalgorithmi.pdf  Djamel-Eddine ZEGOUR, O-Notation, École nationale Supérieure d’Informatique, pp 33. Disponible sur http://www.zegour.netii.net/Site%20secondaire/Mcp/Cours%20ppt/1_o-notation.pdf 34