Académique Documents
Professionnel Documents
Culture Documents
Dans cet exemple, "ensemble" est un tableau d'éléments et "comparer" est une fonction qui prend
deux éléments en entrée et renvoie True si le premier est inférieur ou égal au second, et False sinon.
L'algorithme parcourt chaque élément de l'ensemble et met à jour la variable max si l'élément
courant est supérieur à max selon la fonction de comparaison. Une fois que tous les éléments de
l'ensemble ont été parcourus, l'algorithme renvoie max comme étant le maximum de l'ensemble.
En effet, l'algorithme parcourt chaque élément de l'ensemble une seule fois, et pour
chaque élément, une seule comparaison est effectuée. Ainsi, pour un ensemble de taille
n, l'algorithme effectuera au maximum n comparaisons.
La complexité de l'algorithme est donc O(n), ce qui signifie qu'elle est "linéaire" et
qu'elle ne devrait pas poser de problème de performance même pour des ensembles de
taille importante.
Pour cela, considérons un ensemble A de n éléments distincts. Dans le pire des cas, cet
ensemble sera trié de manière décroissante, c'est-à-dire que le premier élément sera le
plus grand et le dernier élément le plus petit.
En effet, l'algorithme parcourt chaque élément de l'ensemble une seule fois et effectue
au plus deux comparaisons par élément. Ainsi, pour un ensemble de taille n,
l'algorithme effectuera au maximum 2n comparaisons.
La complexité de l'algorithme est donc O(n), ce qui signifie qu'elle est "linéaire" et
qu'elle ne devrait pas poser de problème de performance même pour des ensembles de
taille importante.
3. Récrivez votre algorithme de recherche du maximum sous la
forme d'un tournoi (de tennis, de foot, de pétanque ou de tout
autre sport). Il n'est pas nécessaire de formaliser l'algorithme
ici, une figure explicative sera amplement suffisante.
#include <stdio.h>
secondLargest = firstLargest;
firstLargest = arr[i];
secondLargest = arr[i];
return secondLargest;
Cet algorithme a une complexité en temps de O(n) car il parcourt le tableau entier une
seule fois.
Cet algorithme parcourt le tableau et met à jour deux variables, min et max, qui
contiennent respectivement le minimum et le maximum trouvés jusqu'à présent. Si un
élément du tableau est plus petit que le minimum trouvé jusqu'à présent, alors min est
mis à jour avec la valeur de l'élément du tableau. Si un élément du tableau est plus
grand que le maximum trouvé jusqu'à présent, alors max est mis à jour avec la valeur de
l'élément du tableau.
Cet algorithme a une complexité en temps de O(n) car il parcourt le tableau entier une
seule fois.
Cet algorithme a une complexité en temps de O(n) car il parcourt le tableau entier une
seule fois. Sa complexité en nombre de comparaisons est inférieure à O(n), car le
nombre de comparaisons effectuées est au plus n/2 (pour un tableau de taille n).