Programación y sintaxis · revisado en agosto de 2026
Complejidad algorítmica
La complejidad algorítmica describe, con notación Big O, cómo crece el tiempo (o la memoria) que necesita un algoritmo a medida que crece el tamaño de su entrada. No mide segundos exactos, sino la tendencia de crecimiento: O(n) crece linealmente, O(n²) crece mucho más rápido.
# O(n): una sola pasada
def contiene(lista, valor):
return valor in lista
# O(n^2): compara cada par de elementos
def tiene_duplicados(lista):
for i, a in enumerate(lista):
for b in lista[i + 1:]:
if a == b:
return True
return FalsePreguntas frecuentes
¿Qué significa O(n) frente a O(n²)?
O(n) significa que el trabajo crece proporcionalmente al tamaño de la entrada (recorrer una lista una vez); O(n²) significa que crece con el cuadrado, típico de comparar cada elemento contra todos los demás — mucho más lento en entradas grandes.
¿Por qué importa si el código 'ya funciona'?
Porque un algoritmo O(n²) puede ser instantáneo con 100 elementos pero tardar minutos con un millón; la complejidad predice cómo se comportará el código cuando los datos crezcan, algo que las pruebas con datos pequeños no revelan.
¿Cómo se detecta la complejidad de un algoritmo propio?
Contando cuántas veces se ejecuta la operación más costosa en función del tamaño de la entrada — por ejemplo, un bucle anidado dentro de otro bucle sobre los mismos datos suele indicar O(n²).