Complexité

La complexité algorithmique mesure les ressources (principalement le temps de calcul et l'espace mémoire) nécessaires à l'exécution d'un algorithme en fonction de la taille de ses données d'entrée (notée souvent $n$).

L'objectif est d'exprimer cette relation à l'aide de notations asymptotiques (telles que la notation Grand $O$, ou $O(f(n)))$ pour décrire le comportement de l'algorithme lorsque la taille des données d'entrée $n$ devient très grande.

Objectifs:

Notations

$n$ = taille des données

$T(n)$ = nombre d’opérations élémentaires

Exemple 1: recherche d’une valeur dans un tableau (Recherche Séquentielle)

Cet algorithme consiste à parcourir le tableau élément par élément du début à la fin pour trouver une valeur x.

<aside> 💡

On calculera en utilisant le pire des cas pour être sûr que l’algorithme ne durera jamais plus longtemps que prévu.

</aside>

Exemple 2: Test de primalité (Naïf amélioré)