Complexité d’un algorithme
Alexandre Benoit
BCPST
2 / 18
I Coût d’un algorithme
3 / 18
Un premier exemple
Pour traiter un même problème, il existe souvent plusieurs algorithmes.
Pour décider quel algorithme choisir, l’un des critères est celui du temps
d’exécution, qu’on appelle aussi coût de l’algorithme.
Exemple
def e v a l u e (P , x ) :
S = 0
n = len(P)
f o r ii n ra ng e ( n ) :
S = S + P [ i ]x∗ ∗ i
return S
À quoi sert cet algorithme ?
à évaluer un polynôme
Combien de produits et de
sommes effectue cet
algorithme ?
effectuer puissance i coute
i1produits. On effectue
donc à chaque étape de la
boucle iproduits et une
somme. En tout donc
(n1)n
2produits et n
sommes
4 / 18
Une alternative à cet algorithme
Exemple
def h o r n e r ( P , x ) :
resultat = 0
n = l e n (P)
f o r ii n ra ng e ( n1, 1, 1) :
resultat = x resultat + P[ i ]
return resultat
À quoi sert cet algorithme ?
à évaluer un polynôme
Combien de produits et de sommes effectue cet algorithme ? Il effectue
1produit et 1somme à chaque itération.
L’algorithme effectue donc nproduits et nsommes
5 / 18
Exercice
Si le premier algorithme avec comme entrée un polynôme de degré n
s’exécute en 10 secondes, en combien de secondes s’exécutera-t’il avec
avec en entrée un polynôme de degré 100n?
Avec un degré 100n, le premier algorithme effectuera
(100n1) ×100n
2produits. C’est à dire environ 5000 fois plus de
produits qu’avec le polynôme d’origine.
Si on considère que le produit prend plus de temps, on peut estimer
que l’algorithme s’exécutera en environ 5000 fois plus de temps. C’est
à dire en environ 14 heures.
Même question avec le second algorithme.
Avec un degré 100n, le second algorithme effectuera 100nproduits.
C’est-à-dire 100 fois plus de produits qu’avec un polynôme de degré n.
On peut estimer que l’algorithme s’exécutera en environ 100 fois plus
de temps. C’est-à-dire en moins de 2minutes.
1 / 18 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !