Complex Te 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 17

COMPLEXITE 1

Dr Yacouba GOITA
PLAN
• Notion de complexité
• Comment évaluer la complexité d’un algorithme
• Exemple de calculs de complexité
Notion de complexité(1)
• Comment évaluer les performances d’un algorithme
• Différents algorithmes ont des couts différents en termes
de temps d’exécution(nombre d’opérations effectuées
par l’algorithme),
• taille mémoire(taille nécessaire pour stocker les
différentes structures de données pour l’exécution).
Ces deux concepts sont appelés la complexité en temps et
en espace de l’algorithme.
Notion de complexité(2)
• La complexité algorithmique permet de mesurer les
performances d’un algorithme et de le comparer avec d’autres
algorithmes réalisant les même fonctionnalités.
• La complexité algorithmique est un concept fondamental pour
tout informaticien, elle permet de déterminer si un algorithme a
est meilleur qu’un algorithme b et s’il est optimal ou s’il ne doit
pas être utilisé...
Temps d’exécution(1)

• Le temps d’exécution d’un programme dépend:


1. du nombre de données,
2. de la taille du code,
3. du type d’ordinateur utilisé( processeur,
mémoire),
4. de la complexité en temps de l’algorithme
«abstrait» sous-jacent.
Temps d’exécution(2)
• Soit n la taille des données du problème et T(n) le temps d’exécution de
l’algorithme. On distingue:
• Le temps du plus mauvais cas Tmax(n)qui correspond au temps maximum
pris par l’algorithme pour un problème de taille n.
• Le temps moyen Tmoy temps moyen d’exécution sur des données de taille n
(suppositions sur la distribution des données).
Temps d’exécution
• Règles générales:
1. Le temps d’exécution(t.e.)d’une affectation ou d’un test est
considéré comme constant,
2. Le temps d’une séquence d’instructions est la somme des
instructions qui la composent,
3. le temps d’un branchement conditionnel est égal au t.e. du
test plus le max des deux t.e. correspondant aux deux
alternatives(dans le cas d’un temps max).
4. Le temps d’une boucle est égal à la somme du coût du test
+ du corps de la boucle + test de sortie de boucle.
Problèmes du temps d’exécution(1)

•Soit l’algorithme suivant:


Nom: Calcul d’une somme de carrés
Role: Calculer la valeur moyenne d’un tableau
Entrée: n:entier
Sortie: somme:réel
Déclaration: i:Naturel
Début
somme ←0.0
pour i ← 0 à n-1 faire
somme ← somme + i*i
fin pour
fin
Problèmes du temps d’exécution(2)
Complexité d’un algorithme récursif(1)
• Soit l’algorithme:
fonction factorielle(n:Naturel):Naturel
Début
si n=0 alors
retourner 1
Sinon
retourner n*factorielle(n-1)
Finsi
fin
Complexité d’un algorithme récursif(2)
Principales complexités
Influence de la complexité
Limites de la complexité
Conseils
• Qualités d’un algorithme:
1. Maintenable(facile à comprendre, coder, déboguer),
2. Rapide
• Conseils:
1. Privilégier le point 2 sur le point1 uniquement si on gagne en
complexité.
2. «ce que fait» l’algorithme doit se lire lors d’une lecture rapide: Une
idée
par ligne. Indenter le programme.
3. Faire également attention à la précision, la stabilité et la sécurité.
La rapidité d’un algorithme est un élément d’un tout définissant les
qualités de celui-ci

Vous aimerez peut-être aussi