L'exécution d'un programme nécessite l'utilisation des
ressources de l'ordinateur : temps de calcul pour exécuter les
opérations, et l'occupation de la mémoire pour contenir et
manipuler le programme et ses données.
L'objet de l'analyse de la complexité est de quantifier les deux
grandeurs physiques "temps d'exécution" et "place mémoire",
dans le but de comparer entre eux différents algorithmes qui
résolvent le même problème.
1
Il faut déterminer quelle mesure utiliser pour calculer ces deux
quantités.
pour le temps : le nombre d'opérations effectuées et le
temps nécessaire pour chaque opération.
pour la place : le nombre d'instructions et le nombre des
données du programme, avec le nombre de mots mémoire
nécessaires pour stocker chacune d'entre elles, ainsi que le
nombre de mots mémoire supplémentaires pour la
manipulation des données.
Pour la complexité en temps le plus important c'est le nombre
des opérations élémentaires, la notion de complexité devient
importante quand la taille des données devient très grande.
2
Règle de calcul de complexité des
expressions
a)n3+ n2 + n3*log2n
n3*log2ndomine d'où la complexité est O(n3
*log2n)
b) n + 4n + 4n
4n domine, d'où la complexité est O(4n)
3
Complexité constante O(1)
Algorithme 72 : somme_suite (n : entier):
entier
Donnée : entier n
Résultat : entier
Variable locale : entier som
début
som n * (n+1) div 2
retourner som
fin
Le temps ne dépend pas de n.
4
5
Complexité linéaire O(n)
Algorithme 73 : recherche_tableau (tab: tableau, n : entier, but:
T): booléen
Donnée : but de type T
Donnée : le tableau tab d’éléments de type T
Donnée : la taille n du tableau tab
Résultat : booléen
Variable locale : booléen trouve qui indique si la valeur a été
trouvé
Variable locale : entier i, indice du tableau
début
trouve faux
i 1
TANT QUE non trouve et i<= n
SI tab[i] = but ALORS
trouve vrai
SINON
i i + 1
fin
fin
retourner trouve
Fin
Dans le pire des cas les opérations à l'intérieur de TANT QUE sont exécutées n fois.
1 / 11 100%