CHAPITRE 1. THÉORIE DE LA COMPLEXITÉ ET MESURE DE PERFORMANCE
6
I : instructions (traitements).
Ces règles forment une partition de l’univers:
- U des règles = tous les cas possibles.
- ∩ =Ø
→ L’algorithme ne doit pas oublier un cas, et on ne peut pas être dans deux cas à la fois.
Exemple 1 : trouver le maximum d’un tableau T
A. Façon abstraite d’un algorithme
Une fois qu’on a compris ce qu’on vient de faire, on peut l’abstraire :
- On considère le premier élément du tableau comme maximum,
- Si on trouve un élément plus grand que lui, c’est notre nouveau maximum
- Une fois que nous avons tout parcouru, nous renvoyons notre dernier maximum :
rien trouvé de plus grand
B. Les règles trouvées
- Max(T, n, i, max) = Max(T, |T|, 2, T[1]))}
- i ≤ n ^ T[i] > max → Max(T, n, i, max) = Max(T, n, i+1, T[i])
- Si je n’ai pas parcouru tout le tableau et que l’élément actuel est supérieur au max,
c’est le nouveau max.
- i ≤ n ^ T[i] ≤ max → Max(T, n, i, max) = Max(T, n, i+1, max)
- Si mon élément actuel n’est pas supérieur au max, alors je continue simplement de
parcourir.
- i > n → Max(T, n, i, max) = max Si j’ai parcouru tout le tableau, je renvoie le max.
C. Ces règles forment une partition de l’univers
- L’union de ces règles, donne tous les cas possible :
(i > n) (i ≤ n ^ T[i] > max) (i ≤ n ^ T[i] ≤ max) = {i, T[i]}
- L’intersection des règles deux à deux, donne l’ensemble vide :
(i ≤ n ^ T[i] > max) (i ≤ n ^ T[i] ≤ max) = {}, l’élément ne peut pas être à la fois plus
petit et plus grand.
- (i > n) (i ≤ n ^ T[i] ≤ max) = {}, on ne peut pas être à la fois dans le tableau et hors du
tableau.
Donc l’algorithme ne peut pas être dans deux cas à la fois.
1.1. Quelques problèmes algorithmiques classiques
– Le problème de tri d’un ensemble d’éléments selon une relation d’ordre (croissant ou
décroissant), avec un milliard d’éléments.
– Le problème de la Recherche pertinente dans des grandes bases de données.