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 lordinateur.
Efficacité des algorithmes(suite)
Objectif (1): concerne le génie logiciel
Objectif (2): Algorithmes et structures de données.
Lorsque lobjectif (2) est important, comment
peut-on mesurer lefficacité dun algorithme?
Comment mesurer lefficacité?
1. Comparaison empirique: coder et exécuter le programme
2. Analyse théorique (asymptotique)
Ressources critiques: temps, espace mémoire,...
Facteurs affectant le temps dexécution:
machine, langage, programmeur, compilateur, algorithme et
structure de données.
En général, le temps dexécution dépend de la longueur de lentrée.
Ce temps est une fonction positive T(n) où nest la longueur de lentrée.
Analyse théorique
On compte le nombre dopérations élémentaires en fonction de la
longueur de lentré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 lentré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 dinconnues ou
déquations
Résoudre un problème de
graphe Nombre de nœuds et/ou
nombre darê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 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 !