Definición - ¿Qué significa la complejidad del tiempo?
La complejidad del tiempo es un concepto en informática que se ocupa de la cuantificación de la cantidad de tiempo que tarda un conjunto de código o algoritmo en procesar o ejecutar en función de la cantidad de entrada.
En otras palabras, la complejidad del tiempo es esencialmente eficiencia, o cuánto tiempo tarda una función de programa en procesar una entrada determinada.
Techinfo explica la complejidad del tiempo
La complejidad del tiempo es simplemente una medida del tiempo que le toma a una función o expresión completar su tarea, así como el nombre del proceso para medir ese tiempo. Se puede aplicar a casi cualquier algoritmo o función, pero es más útil para funciones recursivas. No tiene mucho sentido medir la complejidad del tiempo para aplicaciones como buscar el nombre de usuario y la contraseña de una base de datos para compararlos o simplemente guardar datos, ya sean 20 ms o 5 ms; eso estaría más en la línea del tiempo de acceso. No tiene nada que ver con preocuparse por su tiempo de ejecución, sino que la diferencia es insignificante. Sin embargo, si hay una función recursiva a la que se puede llamar varias veces, determinar y comprender la fuente de su complejidad temporal puede ayudar a acortar el tiempo de procesamiento general de, digamos, 600 ms a 100 ms.
La complejidad del tiempo se expresa típicamente en la "notación O grande", pero hay otras notaciones. Esta es una representación matemática del límite superior del factor de escala para un algoritmo y se escribe como O (Nn), siendo "N" el número de entradas y "n" el número de expresiones en bucle. Por ejemplo, tenemos el algoritmo:
números [] = {5,6,10,11,2}; foreach (número como número1)
{
foreach (número como número2) {
declaraciones; }}
Hay cinco entradas en la matriz "números" y el ciclo "foreach" se repite dos veces. Por lo tanto, se produce un crecimiento exponencial en el tiempo de procesamiento a medida que aumenta el número de entradas y el número de bucles.