Un algoritmo O(n) tarda
→ cada operación cuesta c = T / N ≈ {{ humanTime(logC) }}. Todos los tiempos de abajo son c · f(N).
En lineal se ve cómo las que crecen rápido aplastan al resto; en logarítmica se pueden comparar todas.
Se puede usar n, números, + - * / ^, paréntesis, log (base 2), ln, sqrt y !.
Hecho con ❤️ por Programación Avanzada (y Claude)
| ✔ | f(n) | Constante | Nombre | Ejemplos | Tiempo para N = {{ fmt(calN) }} |
|---|---|---|---|---|---|
| {{ f.name }} | {{ f.examples }} | {{ calError ? '—' : humanTime(timeLog(f, calN), true) }} |
Marcá al menos una función en la tabla para graficarla.
| f(n) | N = {{ fmtPow10(N) }} |
|---|---|
| {{ f.label }} | {{ humanTime(timeLog(f, N), true) }} |
Amarillo: más de un día. Rojo: más de un siglo. 🌌: más que la edad del universo (≈ 1,4 × 10¹⁰ años).
| f(n) | {{ b.label }} |
|---|---|
| {{ f.label }} | {{ maxNLabel(f, b.s) }} |
El N más grande tal que c · f(N) entra en ese tiempo.
| f(n) | N hoy | N con la nueva | Crece |
|---|---|---|---|
| {{ f.label }} | {{ maxNLabel(f, speedBudget) }} | {{ maxNLabel(f, speedBudget * speedK) }} | {{ speedGrowth(f) }} |
Con n el N crece tanto como la máquina; con 2ⁿ apenas se le suma un poco: el hardware no salva a un algoritmo exponencial.