Selon Morin, la complexité désigne étymologiquement ce qui est « tissé ensemble ».
Il s'agit de comprendre le tout qui est plus que la somme des éléments, sans pour autant déconsidérer les éléments du tout.
La pensée complexe met donc le chercheur dans une contradiction permanente.
L'objectif premier d'un calcul de complexité algorithmique est de pouvoir comparer l'efficacité d'algorithmes résolvant le même problème.
Dans une situation donnée, cela permet donc d'établir lequel des algorithmes disponibles est le plus optimal.
La complexité d'un algorithme est une mesure de la quantité de temps et/ou d'espace requise par un algorithme.
La complexité temporelle est le temps nécessaire à l'exécution d'un algorithme, en fonction de la longueur des données en entrée.