Chapitre 3 (Analyse d’algorithmes)
4.1 Introduction
Le but principal de ce cours est de vous apprendre à concevoir des algorithmes
efficaces. Cependant, si vous avez le choix entre plusieurs algorithmes afin de résoudre
un problème, vous devez être en mesure de choisir le «plus efficace». Un outil essentiel
afin de prendre une telle décision est «l’analyse d’algorithmes». Malheureusement, il n’y
a pas de recette miracle afin de procéder à l’analyse d’un algorithme en général. C’est
surtout l’intuition, le jugement et l’expérience qui nous guide. Il y a cependant certaines
techniques qui nous sont très utiles. Par exemple, il faut savoir comment analyser les
appels récursifs, les boucles, les alternatives et autres instructions de contrôle (c’est alors
que les concepts mathématiques du chapitre 2 joueront un rôle primordial). Ce chapitre a
pour but de présenter quelques techniques généralement utilisées en analyse
d’algorithmes.
4.2 Analyse des structures de contrôle.
Principe de base
La durée prise par l’exécution d’un programme pour traiter un exemplaire donné est
la somme des durées des instructions exécutées pour traiter cet exemplaire (certaines
instructions sont exécutées plusieurs fois).
4.2.1 Séquence
Somme des durées de chaque terme
4.2.2 Alternative
Durée du test + MAX(durée d’une branche)
4.2.3 Boucle FOR
Somme des durées de chaque tour de boucle (fonction Σ)
(exemples en classe)
4.2.4 Appel récursif
Obtention d’une équation de récurrence par simple inspection de l’algorithme
(exemples en classe)
4.2.5 WHILE, REPEAT…..
C’est instructions sont plus difficiles à analyser. On essaie habituellement de
trouver une fonction des variables impliquées qui décroît à chaque «tour». Il faut
alors prouver que la boucle se termine et calculer ou estimer le nombre de tour
effectifs.
(exemples en classe)