Efficacité des algorithmes
Comment choisir parmi les différentes
approches pour résoudre un problème?
2 objectifs à atteindre:
1. Concevoir un algorithme facile à
comprendre, coder et déboguer.
2. Concevoir un algorithme qui utilise de façon
efficace les ressources de l’ordinateur.
Efficacité des algorithmes(suite)
Objectif (1): concerne le génie logiciel
Objectif (2): Algorithmes et structures de données.
Lorsque l’objectif (2) est important, comment
peut-on mesurer l’efficacité d’un algorithme?
Comment mesurer l’efficacité?
1. Comparaison empirique: coder et exécuter le programme
2. Analyse théorique (asymptotique)
Ressources critiques: temps, espace mémoire,...
Facteurs affectant le temps d’exécution:
machine, langage, programmeur, compilateur, algorithme et
structure de données.
En général, le temps d’exécution dépend de la longueur de l’entrée.
Ce temps est une fonction positive T(n) où nest la longueur de l’entrée.
Analyse théorique
On compte le nombre d’opérations élémentaires en fonction de la
longueur de l’entrée.
Exemple:
Problème Op. élémentaire
Trouver x dans un tableau Comparaison de x avec les
éléments du tableau
Multiplier 2 matrices Multiplication scalaire
Trier un tableau Comparaison entre deux
éléments du tableau
Parcourir un arbre Visiter un noeud
Analyse théorique
La longueur de l’entrée dépend du problème.
Exemple:
Problème Longueur
Trier un tableau Nombre d’éléments dans le
tableau
Multiplier deux matrices Dimension des matrices
Parcourir un arbre binaire Nombre de noeuds
Résoudre un système
d’équations linéaires Nombre d’inconnues ou
d’équations
Résoudre un problème de
graphe Nombre de nœuds et/ou
nombre d’arêtes
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!