Analyse de la Complexité Algorithmique
Analyse de la Complexité Algorithmique
té spatiale
Complexité Algorithmique
Filière : MP
EL BOUNI FATIMA-ZAHRA
elbouni97@[Link]
Classes préparatoires aux grandes écoles
Lycée Moulay Ali Cherif-ERRACHIDIA
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 1 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 2 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 3 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Introduction
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 4 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Introduction
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 4 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Introduction
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 4 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Introduction
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 4 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Problématique
Cette solution n’est pas bien applicable en réalité car on ne sait pas le
comportement de n’importe algorithme quand leurs paramètres d’entrées deviens
assez grands.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 5 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 6 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Notion de complexité
Définition
Pour un même problème P, on peut trouver plusieurs algorithmes (Alg1 , Alg2 , ..., Algn ), la
complexité d’un problème mesure la quantité des ressources nécessaires à la résolution
du problème P.
Cette mesure représente une estimation d’opérations de base en fonction de la taille
des données.
Remarques
L’objectif de la complexité consiste à évaluer le coût d’exécution de chaque
algorithme afin de choisir le meilleur;
Dans un ordinateur, on distingue deux types de ressources : la vitesse d’exécution
du microprocesseur, et le nombre de cases de la mémoire centrale (RAM).
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 7 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Types de complexité
Remarque
Dans ce cours, on s’intéressera le plus souvent à la complexité temporelle.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 8 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1Xn
Tmoyenne (n) = C(d)d∈Dn
n
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 9 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Remarque
En analyse de complexité, on étudie souvent le pire des cas ce qui donne une borne
supérieure de la complexité de l’algorithme.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 10 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 11 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 12 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Notations de Landau
Soit f (n) une fonction qui désigne le temps de calcul d’un algorithme A.
Notation O
On dit que f (n) est en grand O de g(n) si et seulement si :
Notations de Landau
Notation Ω
On dit que f (n) est en grand Ω de g(n) :
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 14 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Notations de Landau
Notation Θ
On dit que f (n) est en grand Θ de g(n) :
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 15 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
O (n) Linéaire Augmentation linéaire du temps d’exécution quan- Calcul de produit scalaire de deux
dle paramètre croit. vecteurs de R...
O (nlog(n)) Quasi-linéaire Augmentation un peu supérieure à O (n) Tri rapide, Tri fusion ...
O (n2 ) Quadratique La complexité est liée au carré du nombre d’entrées. Tri sélection,boucles imbriquées...
O (nk ) Polynomiale nk est le terme de plus haut degré d’un polynôme Multiplication de deux matrices car-
en n; il n’est pas rare de voir des complexités en rées d’ordre n
O (n3 ) ouO(n4 ).
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 16 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 17 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 18 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 19 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 20 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 21 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Après avoir déterminer les coûts d’exécution des instructions élémentaires et des
instructions composées dans un algorithme on peut trouver la borne asymptotique
(notation O )en appliquant les règles suivantes:
1 Les constantes multiplicatives sont remplacées par 1.
2 Les constante additatives sont annulées.
3 Le terme le plus élevé est conservé.
Exemples
O (3n2 + 8n + 4) :
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 22 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Après avoir déterminer les coûts d’exécution des instructions élémentaires et des
instructions composées dans un algorithme on peut trouver la borne asymptotique
(notation O )en appliquant les règles suivantes:
1 Les constantes multiplicatives sont remplacées par 1.
2 Les constante additatives sont annulées.
3 Le terme le plus élevé est conservé.
Exemples
O (3n2 + 8n + 4) : O (n2 )
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 22 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Après avoir déterminer les coûts d’exécution des instructions élémentaires et des
instructions composées dans un algorithme on peut trouver la borne asymptotique
(notation O )en appliquant les règles suivantes:
1 Les constantes multiplicatives sont remplacées par 1.
2 Les constante additatives sont annulées.
3 Le terme le plus élevé est conservé.
Exemples
O (3n2 + 8n + 4) : O (n2 )
O (2n + 8n3 + 14n2 ) :
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 22 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Après avoir déterminer les coûts d’exécution des instructions élémentaires et des
instructions composées dans un algorithme on peut trouver la borne asymptotique
(notation O )en appliquant les règles suivantes:
1 Les constantes multiplicatives sont remplacées par 1.
2 Les constante additatives sont annulées.
3 Le terme le plus élevé est conservé.
Exemples
O (3n2 + 8n + 4) : O (n2 )
O (2n + 8n3 + 14n2 ) : O (2n )
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 22 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Après avoir déterminer les coûts d’exécution des instructions élémentaires et des
instructions composées dans un algorithme on peut trouver la borne asymptotique
(notation O )en appliquant les règles suivantes:
1 Les constantes multiplicatives sont remplacées par 1.
2 Les constante additatives sont annulées.
3 Le terme le plus élevé est conservé.
Exemples
O (3n2 + 8n + 4) : O (n2 )
O (2n + 8n3 + 14n2 ) : O (2n )
O (4n + 33log(n + 6)) :
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 22 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Après avoir déterminer les coûts d’exécution des instructions élémentaires et des
instructions composées dans un algorithme on peut trouver la borne asymptotique
(notation O )en appliquant les règles suivantes:
1 Les constantes multiplicatives sont remplacées par 1.
2 Les constante additatives sont annulées.
3 Le terme le plus élevé est conservé.
Exemples
O (3n2 + 8n + 4) : O (n2 )
O (2n + 8n3 + 14n2 ) : O (2n )
O (4n + 33log(n + 6)) : O (n)
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 22 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 23 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
La complexité de l’algorithme Permutation qui fait l’échange deux entiers est O (1).
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 23 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 24 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 24 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
La complexité de l’algorithme estPremier1 qui teste si le nombre entier n est premier est
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 25 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
La complexité de l’algorithme estPremier1 qui teste si le nombre entier n est premier est
O (n).
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 25 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
La complexité de l’algorithme estPremier2 qui teste si le nombre entier n est premier est
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 26 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
La complexité de l’algorithme estPremier2 qui teste si le nombre entier n est premier est
p
O ( n).
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 26 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 28 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 29 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 29 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 29 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 29 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Technique de sommation
La technique de sommation est utilisée pour résoudre des équations récurrentes en les
exprimant sous forme de sommes, puis en résolvant ces sommes pour obtenir une
expression asymptotique de la complexité.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 30 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Technique de sommation
La technique de sommation est utilisée pour résoudre des équations récurrentes en les
exprimant sous forme de sommes, puis en résolvant ces sommes pour obtenir une
expression asymptotique de la complexité.
Principe
L’idée est de réécrire l’équation récurrente en une somme qui reflète le nombre
d’opérations effectuées à chaque étape de l’algorithme, puis de simplifier cette somme
pour obtenir une solution.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 30 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 31 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
Définition
Une suite réelle (Un )n∈N est dite arithmético-géométrique si :
∀a, b ∈ R tq ∀n ∈ N∗ Un = aUn−1 + b
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 31 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 def factorielle ( n ) :
2 if n <=1:
3 return 1
4 else :
5 return n * factorielle (n -1)
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 32 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 def factorielle ( n ) :
2 if n <=1:
3 return 1
4 else :
5 return n * factorielle (n -1)
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 32 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 def factorielle ( n ) :
2 if n <=1:
3 return 1
4 else :
5 return n * factorielle (n -1)
Exemples
avec
F(0) = 0, F(1) = 1
L’equation récurrente se traduite comme une suite récurrente linéaire non homogène
d’ordre deux.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 33 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
avec
F(0) = 0, F(1) = 1
L’equation récurrente se traduite comme une suite récurrente linéaire non homogène
d’ordre deux.
Définition
Une suite réelle (Un )n∈N est récurrente linéaire homogène d’ordre deux si :
Exemples
Les constantes λ et µ se déterminent à l’aide des valeurs des deux premiers termes de la
suite.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 34 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
Définition
Une suite réelle (Un )n∈N est récurrente linéaire non homogène d’ordre deux s’il existe
deux réels a et b et une fonction f de N dans R, tels que :
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 35 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
1 def fibo ( n ):
2 if n <2:
3 return n
4 else :
5 return fibo (n -1)+ fibo (n -2)
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 36 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
1 def fibo ( n ):
2 if n <2:
3 return n
4 else :
5 return fibo (n -1)+ fibo (n -2)
Si n > 2, on effectue une comparaison et une addition entre deux appels récursifs. Si
n = 0 ou n = 1, seule la comparaison a [Link] a ainsi :
½
C(n − 1) + C(n − 2) + 2 si n ≥ 2
C(n) = (1)
1 sinon
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 36 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
1 def fibo ( n ):
2 if n <2:
3 return n
4 else :
5 return fibo (n -1)+ fibo (n -2)
Si n > 2, on effectue une comparaison et une addition entre deux appels récursifs. Si
n = 0 ou n = 1, seule la comparaison a [Link] a ainsi :
½
C(n − 1) + C(n − 2) + 2 si n ≥ 2
C(n) = (1)
1 sinon
La complexité est donc une suite récurrente linéaire non homogène d’ordre deux. Cette
récurrence est aussi vraie pour n + 1:
½
C(n) + C(n − 1) + 2 si n ≥ 2
C(n + 1) = (2)
1 sinon
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 36 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 37 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 37 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 37 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 37 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemples
Une autre façon de résoudre une équation de récurrence est de substituer, de façon
répétitive, la définition de la fonction dans le coté droit de son équation jusqu’à ce
qu’une forme simple soit obtenue.
½
T (n − 1) + 2 si n > 1
T (n) =
1 sinon
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 38 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Une autre façon de résoudre une équation de récurrence est de substituer, de façon
répétitive, la définition de la fonction dans le coté droit de son équation jusqu’à ce
qu’une forme simple soit obtenue.
½
T (n − 1) + 2 si n > 1
T (n) =
1 sinon
T(n) = T(n-1) + 2
= (T(n-2) + 2) +2
..
.
1 + n−1
P
= i=1 2
= 1+2(n-1)
= O (n)
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 38 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
½
T (n − 1) + n si n > 1
T (n) =
1 si n = 1
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 39 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
½
T (n − 1) + n si n > 1
T (n) =
1 si n = 1
En substituant à chaque fois dans la récurrence on obtient :
T(n) = T(n-1) + n
= (T(n-2) + (n-1)) +n
..
.
= T(1)+2+ · + (n-1)+n
= 1+2+ · + (n-1)+n
Pn
= i=1 i
n(n−1)
= 2
2
= O (n )
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 39 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
2T ( n2 ) + n si n > 1
½
T (n) =
1 si n = 1
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 40 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
2T ( n2 ) + n si n > 1
½
T (n) =
1 si n = 1
Donc T ( n2 ) = 2T ( 2n2 ) + n2 On substituant d’une façon répétitive jusqu’à arriver au cas de
base T (1), c’est-à-dire à une étape k qui vérifie 2nk = 1 donc à l’étape k = log2 (n) :
T(n) = 2T ( n2 ) + n
= 2(2T ( 2n2 ) + n2 ) + n
= 2n + 22 T ( 2n2 )
..
. ³ ´
n
= (k − 1)n + 2k−1 2k−1
+ 2T ( 2nk )
= kn + 2k T ( 2nk )
= nlog2 (n) + 2log2 (n) T (1)
= nlog2 (n) + n
= O (nlog2 (n))
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 40 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 41 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 41 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Le théorème maître
Le théorème maître (Master Theorem) est une méthode puissante et directe pour
résoudre certaines équations récurrentes en se basant sur le principe diviser pour
régner.
Principe
La méthode de diviser pour régner est une méthode qui permet, parfois de trouver des
solutions efficaces à des problèmes algorithmiques. Elle se fait en trois étapes :
Diviser : on divise les données initiales en plusieurs sous-parties.
Régner : on résout récursivement chacun des sous problèmes associés (ou on les
résout directement si leur taille est assez petite).
Combiner : combiner les différents résultats obtenus pour obtenir une solution au
problème initial.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 42 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Le théorème maître
Avec ce paradigme, la complexité d’un algorithme traitant des données de taille n s’écrit
souvent :
T (n) = aT ( nb ) + f (n)
½
T (n0 ) = c
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 43 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Le théorème maître
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 44 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemple
1 def dicho (l , x , d , f ):
2 if d > f :
3 return False
4 else :
5 m = ( d + f ) // 2
6 if l [ m ] = = x :
7 return True
8 elif x < l [ m ]:
9 return dicho (l ,x ,d ,m -1)
10 else :
11 return dicho (l ,x , m +1 , f )
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 45 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Exemple
1 def dicho (l , x , d , f ):
2 if d > f :
3 return False
4 else :
5 m = ( d + f ) // 2
6 if l [ m ] = = x :
7 return True
8 elif x < l [ m ]:
9 return dicho (l ,x ,d ,m -1)
10 else :
11 return dicho (l ,x , m +1 , f )
On a :
n
T (n) = O (1) + T ( ) et T (0) = O (1)
2
On a : a = 1 et b = 2, f (n) = O (1) donc k = 0 et a = bk = 1
D’où d’après le théorème général : T (n) = O(log2 (n))
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 45 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
1 Introduction
2 Notion de complexité
6 Complexité spatiale
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 46 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Complexité spatiale
De la même façon qu’on définit la complexité temporelle d’un algorithme pour évaluer
ses performances en temps de calcul, on peut définir sa complexité spatiale pour
évaluer sa consommation en espace mémoire. Le principe est le même sauf qu’ici on
cherche à évaluer l’ordre de grandeur du volume en mémoire utilisé : il ne s’agit pas
d’évaluer précisément combien d’octets sont consommés par un algorithme mais de
préciser son taux de croissance (ordre de grandeur) en fonction de la taille de l’entrée.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 47 / 47
Introduction Notion de complexité Complexité et Notations asymptotiques Analyse de complexité des algorithmes Complexité d’un algorithme récursif Complexité spatiale
Complexité spatiale
De la même façon qu’on définit la complexité temporelle d’un algorithme pour évaluer
ses performances en temps de calcul, on peut définir sa complexité spatiale pour
évaluer sa consommation en espace mémoire. Le principe est le même sauf qu’ici on
cherche à évaluer l’ordre de grandeur du volume en mémoire utilisé : il ne s’agit pas
d’évaluer précisément combien d’octets sont consommés par un algorithme mais de
préciser son taux de croissance (ordre de grandeur) en fonction de la taille de l’entrée.
les variables simples (entiers, booléens, flottants) occupent un espace constant
O (1) qui ne dépend pas de l’entrée.
La taille d’un tableau est en grand O du produit de ces dimensions :
Un tableau à une dimension de N éléments est en O (N).
une matrice N × M est en O (MN)
Les chaînes de caractères sont en grand O de leur longueur.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Complexité Algorithmique September 21, 2024 47 / 47