material-verano-2025

Costo asintotico

En programacion competitiva, nos exigen que un programa termine en menos de cierto tiempo. Para poder saber eso antes de enviarlo, necesitamos saber cuanto tiempo va a tardar el programa en ejecutarse.

Podriamos simplemente implementarlo y medir el tiempo de ejecucion, pero si resulta que el programa tarda demasiado, perdimos mucho tiempo implementando.

En cambio, nos gustaria poder saber cuanto tiempo va a tardar el programa en ejecutarse sin implementarlo, solo con pensar en el algoritmo.

En realidad, la cantidad exacta de tiempo que tarda un programa en ejecutar es imposible de saber, pero podemos simplificar.

reglas practicas


N máximo Costo asintotico aceptable (1s)
<= 100 O(N^4)
<= 500 O(N^3)
<= 10^4 O(N^2)
<= 10^5 O(N sqrt(N))
<= 10^6 O(N log N)
<= 10^7 O(N)
<= 10^18 O(log N)