Analyse des Algorithmes
Dr. Taggar Hamza
Dans ce chapitre, nous allons focaliser notre attention à l’analyse des algorithmes, l’objectif de cette analyse est de :
Lorsque nous voulons proposer un algorithme pour résoudre un problème particulier, nous de- vons d'abord le faire fonctionner correctement, puis réfléchir à bien le faire, et enfin nous pen- sons à l'amener à résoudre ce problème le plus rapidement possible.
Souvent, les algorithmes sont proposés pour être traduit sous forme des programmes pour qu’ils puissent être exécutés par des ordinateurs. A partir de là, nous commençons à penser à l’analyse de la qualité des algorithmes proposés. Pour obtenir un bon programme, il faut partir d’un bon algorithme qui doit posséder, entre autres, les qualités suivantes:
Nous étudierons 3 variantes d’algorithmes pour calculer la valeur d’un polynôme. Soit 𝑃ሺ𝑥ሻ un polynôme de degré 𝑛, tel que 𝑃(x)= a nX𝑛 + a n-1X𝑛-1+ ... +a1X + a0 ou 𝑛 et entier naturel et a n, a n-1..., a 1, a 0 sont les coefficients du polynôme. Nous définirons cette structure comme suit :
Pour calculer la valeur de polynôme, nous définissons la procédure Lire_polynome() qui lit le degré et les valeurs des coefficients d’un polynôme ; et une autre fonction puissances() qui calcule le terme 𝑋n .
Le coût de chaque appel est de 𝑖 opérations de multiplication. Le coût total des appels dans la boucle est
∑i=1n i = n+1⁄2(n+0) = n⁄2(n+1)
Donc le coût de la première variante est :
cout(V1) = (n+1)+(n+1)+ n⁄2(n+1)
Cout(V1) ( 2 + n⁄2 )(n+1)
Pour un polynôme de degré 𝑛 , la deuxième variante de cet algorithme effectue :
Pour un polynôme de degré 𝑛 , la deuxième variante de cet algorithme effectue :
𝐶𝑜û𝑡(V3) = 2𝑛