Tabla de contenido:
Definición - ¿Qué significa Complejidad del tiempo?
La complejidad temporal 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 para procesar o ejecutar en función de la cantidad de entrada.
En otras palabras, la complejidad del tiempo es esencialmente eficiencia, o cuánto tarda una función de programa en procesar una entrada dada.
Techopedia 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 obtener el nombre de usuario y la contraseña de una base de datos para comparar o simplemente guardar datos si son 20 ms o 5 ms; eso estaría más en la línea de 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 que se puede llamar varias veces, determinar y comprender la fuente de su complejidad de tiempo 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), donde "N" es el número de entradas y "n" es el número de expresiones en bucle. Por ejemplo, tenemos el algoritmo:
numbers = {5, 6, 10, 11, 2}; foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2) {
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
Hay cinco entradas en la matriz de "números", y el ciclo "foreach" se repite dos veces. Por lo tanto, el crecimiento exponencial en el tiempo de procesamiento se produce a medida que aumenta el número de entradas y el número de bucles.