Complexité temporelle

Définition - Que signifie la complexité du temps?

La complexité temporelle est un concept en informatique qui traite de la quantification du temps nécessaire à un ensemble de code ou d'algorithme pour traiter ou exécuter en fonction de la quantité d'entrée.

En d'autres termes, la complexité temporelle est essentiellement l'efficacité, ou le temps nécessaire à une fonction de programme pour traiter une entrée donnée.

Definir Tech explique la complexité du temps

La complexité temporelle est simplement une mesure du temps nécessaire à une fonction ou une expression pour accomplir sa tâche, ainsi que le nom du processus pour mesurer ce temps. Il peut être appliqué à presque n'importe quel algorithme ou fonction, mais est plus utile pour les fonctions récursives. Il est peu utile de mesurer la complexité du temps pour des applications telles que la récupération du nom d'utilisateur et du mot de passe à partir d'une base de données à des fins de comparaison ou simplement la sauvegarde des données, que ce soit 20 ms ou 5 ms; ce serait plus dans la ligne du temps d'accès. Cela n'a rien à voir avec le souci de son temps d'exécution, mais plutôt que la différence est négligeable. Cependant, s'il existe une fonction récursive qui peut être appelée plusieurs fois, la détermination et la compréhension de la source de sa complexité temporelle peuvent aider à raccourcir le temps de traitement global de, disons, 600 ms à 100 ms.

La complexité temporelle est généralement exprimée dans la «notation en gros O», mais il existe d'autres notations. Il s'agit d'une représentation mathématique de la limite supérieure du facteur d'échelle pour un algorithme et s'écrit O (Nn), "N" étant le nombre d'entrées et "n" étant le nombre d'expressions en boucle. Par exemple, nous avons l'algorithme:

nombres [] = {5,6,10,11,2}; foreach (nombre comme nombre1)

{

foreach (nombre comme nombre2) {

déclarations; }}

Il y a cinq entrées dans le tableau "numbers" et la boucle "foreach" est répétée deux fois. Par conséquent, une croissance exponentielle du temps de traitement se produit à mesure que le nombre d'entrées et le nombre de boucles augmentent.