La complexité des algorithmes et des problèmes se réfère à l'analyse des ressources (temps et mémoire) nécessaires pour résoudre un problème en fonction de la taille des donnéesLa complexité algorithmique (ou temporelle) mesure le nombre d'opérations élémentaires d'un algorithme, souvent exprimé avec la notation Big O (ex: ONon) pour l'ordre de grandeur asymptotique. La complexité d'un problème est la complexité du meilleur algorithme connu pour le résoudre et est indépendante des algorithmes spécifiques, tandis que la complexité d'un algorithme est supérieure à celle du problème.